NIO. 多个客户端通道监听同一端口

3
使用 NIO,我应该如何在同一台计算机上注册多个客户端连接以侦听相同的端口。
对于第一个通道,我有以下代码...
channel1 = DatagramChannel.open();
channel1.configureBlocking(false);
channel1.socket().bind(new InetSocketAddress(localPort));
channel1.connect(socketAddress);
SelectionKey key1 = channel1.register(readSelector, SelectionKey.OP_READ);
key1.attach(driverHandler1);

现在,我该如何配置channel2以便在相同的端口上进行监听,因为我不能再次使用bind()。

一次只能将一个资源绑定到一个端口,即使在NIO中也是如此。据我所知。 - Fildor
1
@Fildor 对于UDP来说,或者对于每次使用不同接口的TCP来说,那并不正确。 - user207421
@EJP 谢谢。看来我应该研究一下NIO。我们仍在使用“旧的东西”:( - Fildor
@Fidor 这与NIO毫无关系。这些都是UDP和TCP的基本属性,可通过任何API获得,如果您正在发布评论,则应该已经知道。即使它想要,NIO或任何其他API也无法对此做出任何贡献。 - user207421
1个回答

1
在绑定每个通道之前,您必须调用channelN.socket().setReuseAddress(true)(其中N为每个通道的编号)。然后您可以将它们全部绑定。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接