大神们,我这遇到这样一个情况,用TCP/IP进行网络传输,然后到了我这边接受数据的时候,有的数据只有一半,然后另一半不知道哪去了,但是用网络串口助手就没有这个情况,这是怎么回事呀?
哪位大神可以给小弟分析一下原因吗?
离线
有可能你程序缓存问题。查看是否程序缓存满了
离线
tcp有粘包现象,正常的。 串口工具发包是固定长度了。
离线
这问题看起来像是你代码里处理粘包或者缓冲区读数据时出了问题。TCP是流式协议,不是按“包”发送的,你调用send发送100字节,对端recv可能一次收到20字节,下一次收到80字节。网络串口助手内部帮你处理了这种粘包和半包问题,所以它显示正常。而你自己写的代码没有处理,直接把收到的半个包当完整包用了,结果就是丢了一半。
离线