我必须通过将文件从客户端上传到服务器来模拟客户端服务器的UDP关系。它还使用停止和等待协议。我的问题是我需要在我的服务器类中使用代码来处理损坏的数据包吗?我在网上看了一个**
带有校验和错误的UDP数据包将被堆栈拒绝。在 换句话说,具有校验和错误的UDP数据包是不可能的 要“正确接收到另一端”,因为数据包会 根本没收到。
**
这是真的吗?服务器根本不会收到导致我的客户端有数据包超时的数据包吗?
答案 0 :(得分:4)
UDP是一种有损协议,它不保证数据的传递。我想你对客户端服务器UDP关系的模拟是“尽力而为”(模拟协议本身),所以不,你不需要这些额外的代码。
答案 1 :(得分:1)
我在很多教科书中都读到,一些堆栈的含义会提供一个错误的数据包,表明校验和失败了,而其他人丢弃了数据包。实际上,如果校验和失败,我用过的所有系统都会丢弃数据包。
如果确实丢弃了数据包,那么超时+重新发送就足够了。