Foxtable(狐表)用户栏目专家坐堂 → 多个tcp客户端怎么连接?


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

主题:多个tcp客户端怎么连接?

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


加好友 发短信
等级:三尾狐 帖子:643 积分:3684 威望:0 精华:0 注册:2011/5/21 18:05:00
多个tcp客户端怎么连接?  发帖心情 Post By:2023/2/25 18:28:00 [显示全部帖子]

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)
            Dim txt = forms("窗口1").Controls("TextBox2")
            txt.Text &= iif(txt.text > "", vbcrlf, "") & str
        End While
    End Sub
End Class
以上是全局代码,单个连接没有问题,但是我现在要同时开四个连接,需要怎么写代码?

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:tcp客户端.table



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


加好友 发短信
等级:三尾狐 帖子:643 积分:3684 威望:0 精华:0 注册:2011/5/21 18:05:00
  发帖心情 Post By:2023/2/27 11:17:00 [显示全部帖子]

那返回的数据呢?
    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)
            Dim txt = forms("窗口1").Controls("TextBox2")
            txt.Text &= iif(txt.text > "", vbcrlf, "") & str
        End While
    End Sub
这里怎么反馈给不同的框?

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


加好友 发短信
等级:三尾狐 帖子:643 积分:3684 威望:0 精华:0 注册:2011/5/21 18:05:00
  发帖心情 Post By:2023/2/27 12:03:00 [显示全部帖子]

我想知道收到回写数据以后怎么区分?
    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)
            Dim txt = forms("窗口1").Controls("TextBox2")
            txt.Text &= iif(txt.text > "", vbcrlf, "") & str
        End While
    End Sub

这里怎么知道是那个socket返回的数据

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


加好友 发短信
等级:三尾狐 帖子:643 积分:3684 威望:0 精华:0 注册:2011/5/21 18:05:00
  发帖心情 Post By:2023/2/27 12:41:00 [显示全部帖子]

   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)
            Dim txt = forms("窗口1").Controls("TextBox2")
            txt.Text &= iif(txt.text > "", vbcrlf, "") & str
        End While
    End Sub
那上面的代码怎么写?四个socket都登陆成功后,上面的代码接收到的反馈给那个TextBox?

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


加好友 发短信
等级:三尾狐 帖子:643 积分:3684 威望:0 精华:0 注册:2011/5/21 18:05:00
  发帖心情 Post By:2023/2/27 12:43:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:tcp.table


能否帮我把第二个连接的的代码修改一下,剩下两个我自己补充。

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


加好友 发短信
等级:三尾狐 帖子:643 积分:3684 威望:0 精华:0 注册:2011/5/21 18:05:00
  发帖心情 Post By:2023/2/27 17:45:00 [显示全部帖子]

    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) 
            Functions.Execute("TCP", nstr, str)
        End While
    End Sub

你好,这里我不想接收的数据都是1024,有什么办法能让我是接收到多少个字节就输出多少个字节吗?
[此贴子已经被作者于2023/2/27 18:42:57编辑过]

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


加好友 发短信
等级:三尾狐 帖子:643 积分:3684 威望:0 精华:0 注册:2011/5/21 18:05:00
  发帖心情 Post By:2023/2/28 12:07:00 [显示全部帖子]

那需要怎么判断那些字节是接收到的,那些字节是无用的?

 回到顶部