• 5355阅读
  • 3回复

TCP粘包,收到2个数据,但是槽函数只被触发了一次 [复制链接]

上一主题 下一主题
离线plmmlp09
 

只看楼主 倒序阅读 楼主  发表于: 2012-08-15
比如收到2段时间较近的数据时,槽函数只被调用了一次,两段数据合在一起了,如何解决?是后期解析时去解决吗?
离线luoqiqiqi75
只看该作者 1楼 发表于: 2012-08-29
你说的对!何止是2个粘一起,全粘一起了。。。。。我是加了一个分隔符,然后用一个分割完放到QStringList然后处理。。。。可能是比较笨的办法
离线175753457

只看该作者 2楼 发表于: 2012-12-18
每个数据包前面加一个int,表示这个包大小。然后在接收时候,第一次接收一个int,然后接收这个int值代表的数据长度。这样就解决了粘包问题。
离线hehui

只看该作者 3楼 发表于: 2013-01-29
TCP必须正理粘包问题,最简单的是在头部加上两字节表示一条数据的长度。
快速回复
限100 字节
 
上一个 下一个