总第21篇
在用TCP写网络通信程序时,粘包问题时有出现,特别是对于没有这方面经验的人来说,出现粘包问题压根都无法定位问题的根源,更谈不上解决问题的方法了。本文将详细讲解自己在项目过程中遇到的粘粘包问题,并讨论TCP传输过程中粘包问题产生的原因、解决方法,最后给出相应的QT项目解决粘包问题的代码,以供大家参考。
1.问题的产生
在我的项目中,涉及到高频率从socket
中读取小车的信息数据并显示到表格,如下图所示。读取是以行为单位的,每行是一个结构体,每次按循环的方式读取整个表格。其出现的问题在于,服务器正常发送数据,但是表格里的数据无法实时更新,有时在Win10
系统中正常,有时不正常,在Win7
系统中完全不正常。

在遇到这个问题时,我是这样依次分析的:
- 难道是操作系统的问题?
Win10
与Win7
存在细微的判别?这种概率比较小。 - 难道是发送的数据存在问题?发送存在延时?
- 难道是数据接收有问题?接收拥塞?
最