socket通信中一定要注意收发数据长度保持一致

修改前的前置服务器:客户端:

bug:在下面结果可以明显看到前置服务器是拿到了好友列表并且发送给了客户端,但是客户端却接受不到正确的相应头,而且会有很多0

原因:之所以会读取很多零是因为上一次回应进来的登录响应收到的数据长度大于了接受的数据长度,在接受端第一次把有效部分读取完之后,其余部分都是没有实际数据的,所以都是空,读取出来就都是0显示。立马好友请求的响应又被发送了进来,但是前面的空数据还没读取导致他们的位置存在偏差,读取的数据就会发生紊乱,后面出现了244、842018865等数字,获取不到正确完整的结构,也就无法解析头合体了。

解决:前置服务器发送的时候做个判断,确保每次发送的数据长度与客户接收对应。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值