vb socket接收数据问题!!!!求大神!
用C#的服务器向VB的客户端发送int数据,最大的就3位数。然后vb客户端用dataArrival事件接收,PrivateSubtcpClient_DataArrival...
用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 结果得到的数字完全不正确,晕啊
求大神解救~!!!! 展开
然后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 结果得到的数字完全不正确,晕啊
求大神解救~!!!! 展开
3个回答
展开全部
VB的Winsock其实是异步发送,当空闲时才检测是否有内容在缓存区需要发送,缓存区是在一块的,所以会发生连包的现象,不过楼主是用C#写的代码发送的话就只能自己写一个协议了,这个协议很简单,用某个二进制数来分隔每一个包,这样就不怕连包了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
字符模式与二进制模式的区别 32(十六制)='2' 字符 33(十六制)='3' 字符
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询