qt中TCP客户端接收的所有数据都需要拆包与并包吗? 10C

qt中TCP客户端接收的所有数据都需要拆包与并包吗?如果不是请问我想要同时接收有黏包和不黏包的数据应该怎么做?能具体到用代码写出来吗,谢谢各位大神了

c++

2个回答

那就要根据协议的特征来进行分包拼包了,毕竟已经发生了粘包状况,至于具体怎么进行分包,要看你协议。
一般协议比如modbus这种,在接收时候可以根据头几个字节确定协议长度,再根据包头包尾进行拆分和组合。
客观来说就是接收一组数据,然后分析协议的完整性,如果有多余的,保存在一个数组内用于下一包的拼接,其他正常部分获取之后进行处理,循环往复。

phenix2009
白色一大坨 回复风起云涌的时间: 我说了,根据协议来分辨,你别以为你qq里面接收的是普通语句,内部就没协议了,按协议的头尾来进行判断是否为一包数据,以此为基准处理粘包问题,这是基础操作
12 个月之前 回复
qq_37772131
风起云涌的时间 我说的是那种普通的数据,就比如qq聊天中你说一句我说一句这种,这种很明显不会黏包,但是如果我的客户端即要接收这种不黏包的也要接收那种黏包要分开表示吗
12 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问