2012-03-21 159 views
0

我必须通过将文件从客户端上传到服务器来模拟客户端服务器的UDP关系。它也使用停止和等待协议。我的问题是我需要在我的服务器类中处理损坏的数据包的代码?我在网上读的地方,有一个校验和错误**数据包损坏和UDP

UDP数据包将被堆被拒绝。在 换句话说,对于校验和错误为 的UDP数据包,“在另一端正确接收”是不可能的,因为根本不会接收到数据包 。

**

是真的吗?服务器会不会收到数据包,导致我的客户端发生数据包超时?

+1

指定这个“某处”会很有帮助,所以我们可以检查一下。网上有很多“somewheres”,不幸的是“某处”通常充满了垃圾。 – 2012-03-21 19:03:43

+0

我刚刚看到它作为论坛发表评论,所以其有效性非常可疑 – user1205853 2012-03-21 19:27:09

回答

4

UDP是有损协议,它不保证数据的传递。我想你对客户端服务器UDP关系的模拟是“尽力而为”(模拟协议本身),所以不需要,你不需要这个额外的代码。

1

我已经在很多教科书中看到,一些堆栈实现会提供一个包含错误的数据包,指示校验和失败,而另一些则丢弃数据包。在实践中,如果校验和失败,我曾经使用的所有系统都丢弃数据包。

如果数据包确实被丢弃,那么timeout + resend就足够了。