vb socket接收数据问题!!!!求大神!

用C#的服务器向VB的客户端发送int 数据,最大的就3位数。
然后vb客户端用 dataArrival 事件接收,

Private Sub tcpClient_DataArrival _
(ByVal bytesTotal As Long)
Dim strData As String
tcpClient.GetData strData
Text4.Text = strData
End Sub

结果发生连包问题, 有的时候C# 发送 32,,33 ,到了VB就成了3233 四位数了 ,求大神这个应该怎么解决啊????

c# 发送的代码 socket.Send(Encoding.ASCII.GetBytes((int)num + ""));

试过用 tcpClient.GetData strData ,vbString , 3 结果得到的数字完全不正确,晕啊

求大神解救~!!!!

我觉得你发送的方式需要调整.
因为你每发送一个字符没有设结束标志位,虽然发送的时候是有间隔,但由于网络或其它的阻塞,当接收的时候就可能是一批数据,如果你没有设置分离标志的话,接收到的就没法识别了!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-13
VB的Winsock其实是异步发送,当空闲时才检测是否有内容在缓存区需要发送,缓存区是在一块的,所以会发生连包的现象,不过楼主是用C#写的代码发送的话就只能自己写一个协议了,这个协议很简单,用某个二进制数来分隔每一个包,这样就不怕连包了
第2个回答  2013-11-13
字符模式与二进制模式的区别 32(十六制)='2' 字符 33(十六制)='3' 字符
相似回答