Java:多个套接字在单个线程中发送和接收维护

时间:2015-02-12 05:18:02

标签: java multithreading sockets

我是一名新的Java套接字开发人员。在我的解决方案中有三个用于发送和接收的插槽。我想在一个线程中接收三个套接字的数据。出于这个原因,我如何得到套接字从远程获取数据的通知。

1 个答案:

答案 0 :(得分:2)

可以在单个线程中处理多个流(套接字的流)。它需要使用套接字通道(来自java.nio.channels)和(单个)Selector.

您创建了一个选择器和注册 SocketChannels.

要了解i / o操作的任何新可能性,请调用Selector的{​​{1}}方法,只要其中一个通道已准备好进行读取,写入或接受,该方法就会返回。您必须学习就绪通道(即获取其“密钥”),并调用其适当的数据传输方法。

网上有一些示例代码。

PS:使用线程可能更容易。