【发布时间】:2013-04-05 20:05:10
【问题描述】:
想象一下 UDP 数据包中的以下场景:
- 服务器广播“Hello”消息并等待答案
- 客户 1 回答“嗨”
- 客户端 2 也回答“嗨”
现在,如果在服务器完成处理第一个答案之前收到第二个答案,我对服务器会发生什么感兴趣。
一方面,UDP 在设计上是不可靠的,而且由于我没有第二次调用datagramSocket.receive(myPacket),我认为第二个答案将被默默地丢弃。
另一方面,套接字仍然是打开的,所以也许 Java(甚至更低级别,如内核网络堆栈中的)会将数据包排队。
在这种情况下会发生什么?
【问题讨论】: