socket 怎么判断是否有数据接收
1个回答
推荐于2018-04-23
展开全部
别用字母作为结束标志了,除非你能保证数据体中不会出现这个字母,否则数据接收就不正确了。
一般情况下对付粘包,可以在通讯协议的规则上下点功夫。比如规定前4个字节表示该包的数据体长度,这样每次先读4个字节,根据4个字节的值再去读数据体。处理完毕之后再读4个字节,再根据4个字节的值读数据体。一直循环下去,如此可以解决粘包的情况。
一般情况下对付粘包,可以在通讯协议的规则上下点功夫。比如规定前4个字节表示该包的数据体长度,这样每次先读4个字节,根据4个字节的值再去读数据体。处理完毕之后再读4个字节,再根据4个字节的值读数据体。一直循环下去,如此可以解决粘包的情况。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询