VB.NET TCP服务器正确接收数据
我有一个多线程(带Backgroundworker)TCP服务器,它是由VB.NET开发的。当客户端和服务器在同一台机器上时,它工作得非常好。但当我从同一局域网的另一台计算机连接到服务器时,它的工作方式就不同了。在这种情况下,它工作良好,直到我开始连续发送消息(每秒3-4条消息)。我发送: 你好 你好 你好 你好 嗨 服务器会收到以下消息: 嗨 高原训练 嗨嗨 你好 等等 非常有趣的是,只有当客户机位于局域网的另一台计算机上时,才会发生此问题 这是我的听力练习:VB.NET TCP服务器正确接收数据,vb.net,tcp,server,Vb.net,Tcp,Server,我有一个多线程(带Backgroundworker)TCP服务器,它是由VB.NET开发的。当客户端和服务器在同一台机器上时,它工作得非常好。但当我从同一局域网的另一台计算机连接到服务器时,它的工作方式就不同了。在这种情况下,它工作良好,直到我开始连续发送消息(每秒3-4条消息)。我发送: 你好 你好 你好 你好 嗨 服务器会收到以下消息: 嗨 高原训练 嗨嗨 你好 等等 非常有趣的是,只有当客户机位于局域网的另一台计算机上时,才会发生此问题 这是我的听力练习: Sub listen_port6
Sub listen_port6(ByVal b As BackgroundWorker)
Dim server As TcpListener
server = Nothing
Try
Dim port As Int32 = 8085
server = New TcpListener(IP, port)
server.Start()
Dim bytes(1024) As Byte
Dim data As String = Nothing
While True
Dim client As Sockets.TcpClient = server.AcceptTcpClient()
Dim ipend As Net.IPEndPoint = client.Client.RemoteEndPoint
PublicIP = ""
If Not ipend Is Nothing Then
PublicIP = ipend.Address.ToString
End If
b.ReportProgress(1)
Dim stream As NetworkStream = client.GetStream()
Dim i As Int32
Dim k As Short
For k = 0 To 1024
bytes(k) = 0
Next
i = stream.Read(bytes, 0, bytes.Length)
While (i <> 0)
data = ""
data = System.Text.Encoding.ASCII.GetString(bytes, 0, i)
Debug.Print(data)
i = stream.Read(bytes, 0, bytes.Length)
End While
client.Close()
End While
Catch errore As Exception
Error_Print(errore.Message)
Finally
server.Stop()
End Try
End Sub
Sub-listen\u-port6(ByVal b作为后台工作人员)
作为TcpListener的Dim服务器
服务器=无
尝试
Dim端口为Int32=8085
服务器=新的TcpListener(IP,端口)
server.Start()
Dim字节(1024)作为字节
将数据变暗为字符串=无
虽然是真的
Dim client As Sockets.TcpClient=server.AcceptTcpClient()
将ipend设置为Net.IPEndPoint=client.client.RemoteEndPoint
PublicIP=“”
如果不是我的话,那我什么都不是
PublicIP=ipend.Address.ToString
如果结束
b、 报告进展(1)
作为NetworkStream=client.GetStream()的Dim流
Dim i As Int32
把k调短
对于k=0到1024
字节(k)=0
下一个
i=stream.Read(字节,0,字节.长度)
而(i 0)
data=“”
数据=System.Text.Encoding.ASCII.GetString(字节,0,i)
调试.打印(数据)
i=stream.Read(字节,0,字节.长度)
结束时
client.Close()
结束时
捕获错误作为异常
打印错误(错误消息)
最后
server.Stop()
结束尝试
端接头
提前感谢BeginReceive方法能解决我的问题吗?我自己找到了答案。这是一篇关于我的问题的好文章。我希望有这样问题的人会有用: