Private Sub sckclient1_DataArrival(ByVal bytesTotal As Long)Dim thestring As String Dim strdata() As ByteDim pos As Integer sckclient1.GetData strdata(), vbArray Or vbByteFor pos = 0 To UBound(strdata) thestring = thestring & "-" & strdata(pos) & "-" 这是我的接收过程
没看明白,这是我的代码 Private Sub sckclient1_DataArrival(ByVal bytesTotal As Long)Dim thestring As String Dim strdata() As ByteDim pos As Integer sckclient1.GetData strdata(), vbArray Or vbByteFor pos = 0 To UBound(strdata) thestring = thestring & "-" & strdata(pos) & "-"我用网络调试助手调试时能正确接收,所以应该是接收没有处理好,请指点一下
Private Sub sckclient1_DataArrival(ByVal bytesTotal As Long)Dim thestring As String Dim strdata() As ByteDim pos As Integer ReDim strdata(bytesTotal-1) sckclient1.GetData strdata(), vbArray Or vbByteFor pos = 0 To UBound(strdata) thestring = thestring & "-" & strdata(pos) & "-"
send(人多)send(病少)send(财富)
recv(人多病)recv(少财富)
陷阱里面啊!
http://bbs.csdn.net/topics/380167545
Dim strdata() As ByteDim pos As Integer sckclient1.GetData strdata(), vbArray Or vbByteFor pos = 0 To UBound(strdata)
thestring = thestring & "-" & strdata(pos) & "-"
这是我的接收过程
没看明白,这是我的代码
Private Sub sckclient1_DataArrival(ByVal bytesTotal As Long)Dim thestring As String
Dim strdata() As ByteDim pos As Integer sckclient1.GetData strdata(), vbArray Or vbByteFor pos = 0 To UBound(strdata)
thestring = thestring & "-" & strdata(pos) & "-"我用网络调试助手调试时能正确接收,所以应该是接收没有处理好,请指点一下
多加些 Debug.Print,看看 bytesTotal、UBound(strdata)、thestring 是否正常。
Dim strdata() As ByteDim pos As Integer
ReDim strdata(bytesTotal-1)
sckclient1.GetData strdata(), vbArray Or vbByteFor pos = 0 To UBound(strdata)
thestring = thestring & "-" & strdata(pos) & "-"
概念错误。Tcp是流。不知道有多少前人掉在TCP Socket
send(人多)send(病少)send(财富)
recv(人多病)recv(少财富)
陷阱里面啊!
http://bbs.csdn.net/topics/380167545
发送端发送4字节,接收方可能DataArrival
1+1+1+1
2+1+1
3+1
1+2+1
1+1+2
1+3
2+2
3+1
4
WinSock两次发送只有一次DataArrival倒是有可能的,不会把4字节拆成多个包。
WinSock不是串口!
WinSock不是串口!
[size=32px]WinSock不是串口![/size]
一次发送被拆成多次DataArrival的原因在于这次发送的内容刚好跨TCP底层缓冲区的本次末尾和下次开头。
也许永远不可能
1+1+1+1
但
4095+1+3+...
4094+2+2+...
4093+3+1+...
的可能还是很大嘀!