QT 中readyread串口数据不全问题
痞子灬熊 2018-12-17 03:25:41 大佬们,我想问一下
在一个服务端对应n个客户端时,如果客户端发送超长文本而服务端进行接受的话,会发生单次收取不全的情况,可能要收取两次或更多。
如果是一个服务端对应一个客户端的话可以对数据进行循环收取直到数据发送完毕为止。那么多客户端该怎么做啊……
我现在的思维是对数据进行数据头和数据尾添加识别语句(比如:#xxxx#)。把不全且有数据头的数据添加到vector内。如果接受到了一段未有数据头的但有数据尾的数据就查找vecotr内对应socket发送的数据并连接字符串并提出。头尾都没有的对照socket进行连接但不提出。
不过这么做我觉得有bug。就是如果超长数据是同一socket发出的,那么会不会出现a尾对应b头的情况,导致字符串连接非法……
综上:该怎么做才能避免这类事情的发生