发送假数据问题
来源:9-12 消息分片传输设计与实现-4
qq_Con男_03307287
2020-08-08
//如果已终止当前帧,则发送假数据
为什么要发假数据呢,没理解。如果取消发送,不发送不就行了吗。
写回答
1回答
-
因为对于接收方来说,是按帧的概念进行接收的,每帧的长度是固定的,所以会按固定的长度去接收数据,当没有接收满的情况下不会重新接收帧头。
如果此时发送下一帧的数据,那么下一帧的数据的帧头数据会被当作上一帧的帧体了,从而导致后续的所有逻辑都乱掉。
为了避免这种情况有2中解决办法:
发送假数据过去,直到该帧接收完成,再发送一个取消帧过去,当接收方接收到的时候根据规则清理掉不合法的部分。
接收帧体的时候校验帧体的数据,此时我们可以将原始数据进行转码,发送的内容只能包含转码数据内容,如果此时取消,则发送转码以外的数据过去,接收方每次都校验每个字节,这样当接收到不合法的数据的时候就自动识别为取消。
两种方案都是可以,复杂度也差不多,但帧的方案是全局的,更为适合我们的项目。
012020-08-21
相似问题