level 1
蓝梦妖蝶
楼主
发送端
Try
Dim bytes(1024) As Byte
Dim ss = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
Dim localEndPoint As New IPEndPoint(IPAddress.Parse(NET_txtIP.Text), NET_txtPT.Text)
ss.Connect(localEndPoint)
If NET_txtSD.Text.Length > 511 Then
For i = 0 To Int(NET_txtSD.Text.Length / 511)
ss.Send(Encoding.Unicode.GetBytes(Mid(NET_txtSD.Text, 511 * i + 1, 511)))
Next
Else
ss.Send(Encoding.Unicode.GetBytes(NET_txtSD.Text))
End If
ss.Close()
Catch ex As Exception
End Try
接收端(新线程)
s = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp) '使用TCP协议
Dim localEndPoint As New IPEndPoint(IPAddress.Parse(test_ip), test_port) '指定IP和Port
s.Bind(localEndPoint) '绑定到该Socket
s.Listen(100) '侦听,最多接受100个连接
While (True)
Dim bytes(1024) As Byte
Dim ss As Socket = s.Accept()
ss.Receive(bytes, bytes.Length, 0) '接收数据,若用ss.send(Byte()),则发送数据
Dim received As String = Encoding.Unicode.GetString(bytes)
Call NET_test(received)‘显示数据
End While
结果是text大于512字节,就收不全。只能收到第一部分。这个应该如何处理?
2018年11月07日 07点11分
1
Try
Dim bytes(1024) As Byte
Dim ss = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
Dim localEndPoint As New IPEndPoint(IPAddress.Parse(NET_txtIP.Text), NET_txtPT.Text)
ss.Connect(localEndPoint)
If NET_txtSD.Text.Length > 511 Then
For i = 0 To Int(NET_txtSD.Text.Length / 511)
ss.Send(Encoding.Unicode.GetBytes(Mid(NET_txtSD.Text, 511 * i + 1, 511)))
Next
Else
ss.Send(Encoding.Unicode.GetBytes(NET_txtSD.Text))
End If
ss.Close()
Catch ex As Exception
End Try
接收端(新线程)
s = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp) '使用TCP协议
Dim localEndPoint As New IPEndPoint(IPAddress.Parse(test_ip), test_port) '指定IP和Port
s.Bind(localEndPoint) '绑定到该Socket
s.Listen(100) '侦听,最多接受100个连接
While (True)
Dim bytes(1024) As Byte
Dim ss As Socket = s.Accept()
ss.Receive(bytes, bytes.Length, 0) '接收数据,若用ss.send(Byte()),则发送数据
Dim received As String = Encoding.Unicode.GetString(bytes)
Call NET_test(received)‘显示数据
End While
结果是text大于512字节,就收不全。只能收到第一部分。这个应该如何处理?