Foxtable(狐表)用户栏目专家坐堂 → [求助]tcp客户端接收问题


  共有1452人关注过本帖树形打印复制链接

主题:[求助]tcp客户端接收问题

帅哥哟,离线,有人找我吗?
kb9702
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:89 积分:1090 威望:0 精华:0 注册:2017/10/31 16:34:00
[求助]tcp客户端接收问题  发帖心情 Post By:2017/11/28 14:33:00 [显示全部帖子]

 使用tcp客户端案例测试时
将接收的数据写到表中
       Tables("表A").Current("第一列") = str
        Tables("表A").Position = Tables("表A").Position + 1
        Tables("表A").AddNew()
不需要在窗口上显示,将以下代码注销后,为什么每次收到数据多会弹出一个窗口语句中并没有messagebox啊
            'Dim txt = forms("窗口1").Controls("TextBox2")
            'txt.Text &= iif(txt.text > "", vbcrlf, "") & str
刚又测试了下,不注释掉窗口显示的语句,增加写入表的语句就会弹出一个窗口。。
[此贴子已经被作者于2017/11/28 14:37:20编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
kb9702
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:89 积分:1090 威望:0 精华:0 注册:2017/10/31 16:34:00
  发帖心情 Post By:2017/11/28 15:10:00 [显示全部帖子]

空的。。表A里没有写任何代码。。项目里也是。。

 回到顶部
帅哥哟,离线,有人找我吗?
kb9702
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:89 积分:1090 威望:0 精华:0 注册:2017/10/31 16:34:00
  发帖心情 Post By:2017/11/28 15:18:00 [显示全部帖子]

项目事件

 

计划管理

 

表事件

 

窗口表事件

 

窗口与控件事件

 

窗口1_Button1_Click

 

Dim client = vars("client1")

If client IsNot Nothing Then

    client.receiveThread.Abort()

    client.nStream.Close()

End If

 

vars("client1") = new MyClient(e.Form.Controls("txtip").text, e.Form.Controls("txtport").text)

 

窗口1_Button2_Click

 

Dim client = vars("client1")

If client IsNot Nothing Then

    client.receiveThread.Abort()

    client.nStream.Close()

End If

 

窗口1_Button3_Click

 

Dim client = vars("client1")

Dim msg As String = e.Form.Controls("TextBox3").text

Dim stream() As Byte = Encoding.default.GetBytes(msg)

client.nStream.Write(stream, 0, stream.Length)   '往服务器发送登录信息

 

自定义函数

 

全局代码

 

Default

 

Public socket As MyClient

 

Public Class MyClient

    Public receiveThread As System.Threading.Thread

    Public nStream As System.Net.Sockets.NetworkStream

    Public tcp As  System.Net.Sockets.TcpClient

 

    Public Sub New(ByVal ip As String, ByVal port As Integer)

        Dim server As System.Net.IPAddress = System.Net.IPAddress.Parse(ip)

        tcp = New System.Net.Sockets.TcpClient()

        Try

            tcp.Connect(ip, port)

        Catch generatedExceptionName As Exception

            tcp = Nothing

        End Try

 

        If tcp Is Nothing Then

            MsgBox("无法连接服务器,请重试")

        Else

            Dim netStream As System.Net.Sockets.NetworkStream = tcp.GetStream()

                nStream = netStream

                receiveThread = New System.Threading.Thread(New System.Threading.ThreadStart(AddressOf ReceiveMsg))

receiveThread.IsBackground=True

                receiveThread.Start()

            msgbox("登录成功")

        End If

    End Sub

 

    Private Sub ReceiveMsg()

        While True

            Dim packet As Byte() = New Byte(1024) {}

            nStream.Read(packet, 0, packet.Length)

            Dim str As String = Encoding.Default.GetString(packet)

        Tables("表A").Current("第一列") = str

        Tables("表A").Position = Tables("表A").Position + 1

        Tables("表A").AddNew()

            Dim txt = forms("窗口1").Controls("TextBox2")

            txt.Text &= iif(txt.text > "", vbcrlf, "") & str

        End While

    End Sub

End Class

 

菜单事件

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
kb9702
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:89 积分:1090 威望:0 精华:0 注册:2017/10/31 16:34:00
  发帖心情 Post By:2017/11/28 15:21:00 [显示全部帖子]

发现一个特点,如果弹出的窗口不关闭,连续几次发送数据,然后关闭弹出的窗口,接着弹出的下一个窗口会将接收到的数据一次性在窗口中呈现

 回到顶部
帅哥哟,离线,有人找我吗?
kb9702
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:89 积分:1090 威望:0 精华:0 注册:2017/10/31 16:34:00
  发帖心情 Post By:2017/11/28 16:40:00 [显示全部帖子]

就是坛子里下过来的例子插入了三段语句
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:tcp客户端1128.zip


 回到顶部
帅哥哟,离线,有人找我吗?
kb9702
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:89 积分:1090 威望:0 精华:0 注册:2017/10/31 16:34:00
  发帖心情 Post By:2017/11/29 11:01:00 [显示全部帖子]

那就没办法了,我试试直接sql语句插入后台应该可以


 回到顶部