发送假数据问题

来源:9-12 消息分片传输设计与实现-4

qq_Con男_03307287

2020-08-08

//如果已终止当前帧,则发送假数据

为什么要发假数据呢,没理解。如果取消发送,不发送不就行了吗。

写回答

1回答

Qiujuer

2020-08-10

因为对于接收方来说,是按帧的概念进行接收的,每帧的长度是固定的,所以会按固定的长度去接收数据,当没有接收满的情况下不会重新接收帧头。

如果此时发送下一帧的数据,那么下一帧的数据的帧头数据会被当作上一帧的帧体了,从而导致后续的所有逻辑都乱掉。


为了避免这种情况有2中解决办法:

  1. 发送假数据过去,直到该帧接收完成,再发送一个取消帧过去,当接收方接收到的时候根据规则清理掉不合法的部分。

  2. 接收帧体的时候校验帧体的数据,此时我们可以将原始数据进行转码,发送的内容只能包含转码数据内容,如果此时取消,则发送转码以外的数据过去,接收方每次都校验每个字节,这样当接收到不合法的数据的时候就自动识别为取消。

两种方案都是可以,复杂度也差不多,但帧的方案是全局的,更为适合我们的项目。

0
1
qq_Con男_03307287
非常感谢!
2020-08-21
共1条回复

Socket网络编程进阶与实战 系统掌握Socket核心技术

理论+实践,系统且深入掌握Socket核心技术,从容应对各种Socket应用场景的不二之选

2316 学习 · 476 问题

查看课程