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 结果得到的数字完全不正确,晕啊

求大神解救~!!!!
展开
 我来答
满以柳J7
2013-11-13 · TA获得超过539个赞
知道小有建树答主
回答量:545
采纳率:66%
帮助的人:544万
展开全部
我觉得你发送的方式需要调整.
因为你每发送一个字符没有设结束标志位,虽然发送的时候是有间隔,但由于网络或其它的阻塞,当接收的时候就可能是一批数据,如果你没有设置分离标志的话,接收到的就没法识别了!
百度网友9dd2e079c
2013-11-13 · TA获得超过243个赞
知道小有建树答主
回答量:312
采纳率:0%
帮助的人:214万
展开全部
VB的Winsock其实是异步发送,当空闲时才检测是否有内容在缓存区需要发送,缓存区是在一块的,所以会发生连包的现象,不过楼主是用C#写的代码发送的话就只能自己写一个协议了,这个协议很简单,用某个二进制数来分隔每一个包,这样就不怕连包了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
IT消防员
2013-11-13 · 超过36用户采纳过TA的回答
知道小有建树答主
回答量:240
采纳率:50%
帮助的人:65.6万
展开全部
字符模式与二进制模式的区别 32(十六制)='2' 字符 33(十六制)='3' 字符
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式