【发布时间】:2011-11-19 08:44:22
【问题描述】:
这是我第一次涉足 UDP 套接字编程。在不深入了解程序细节的情况下,服务器基本上会向客户端发送 n 条设定大小的消息。我已经编写并运行了代码,看起来我的所有消息都按照服务器发送它们的顺序传递到客户端。这有道理吗?据我了解,使用 UDP,发送的数据包并不总是传递,也不总是以相同的顺序传递。如果是这样,那么为什么客户端程序以相同的顺序接收所有服务器消息并且永远不会丢失任何消息?我尝试了不同的消息编号(例如发送 200 或 500 条消息)和不同的消息大小。我没有使用线程或类似的东西。只需为服务器设置一个循环以逐个发送数据包,而客户端只是在无限循环中等待接收它们。来自更有经验的人的见解将非常有帮助!
【问题讨论】:
-
仅仅因为你可以丢包并不意味着你会这样做。尝试尽可能快地发送几百万个数据包,并测量是否丢失。重新排序通常发生在路由器上,尤其是当它对数据包进行负载平衡时。
标签: java network-programming udp