我是一名新的Java套接字开发人员。在我的解决方案中有三个用于发送和接收的插槽。我想在一个线程中接收三个套接字的数据。出于这个原因,我如何得到套接字从远程获取数据的通知。
答案 0 :(得分:2)
可以在单个线程中处理多个流(套接字的流)。它需要使用套接字通道(来自java.nio.channels)和(单个)Selector.
您创建了一个选择器和注册 SocketChannels.
要了解i / o操作的任何新可能性,请调用Selector
的{{1}}方法,只要其中一个通道已准备好进行读取,写入或接受,该方法就会返回。您必须学习就绪通道(即获取其“密钥”),并调用其适当的数据传输方法。
网上有一些示例代码。
PS:使用线程可能更容易。