1

我试图弄清楚如何实现一个不断“准备”或“侦听”来自服务器的 UDP 数据包的客户端。

我是否需要不断地socket.receive(packet)继续前进,直到收到一个,然后一旦收到,再次打开它?

我应该设置一个重要的socket.setSoTimeout()时间,以便它循环最少的时间吗?

我需要做什么:

能够从服务器请求特定的数据包,然后在不确定的时间内接收任意数量的数据包

4

1 回答 1

1

根据您的流量有多大,您可能会考虑 NIO,尽管它的理解和使用要复杂得多。

如果您只有一个基本应用程序,则启动一个仅阻塞receive(packet). 每当它返回(数据包到达)时,将数据包分派给某种处理程序。如果流量低,这可能是BlockingQueue某个其他线程正在监听的;如果您的流量很大,您可能会将作业发送到一个ExecutorService以并行处理。

于 2013-08-29T15:38:45.287 回答