Java 尼奥。在同一端口上侦听的多个客户端通道

Java 尼奥。在同一端口上侦听的多个客户端通道,java,nio,Java,Nio,使用NIO,如何在同一台机器上注册多个客户端连接,以便在同一端口上侦听 我在第一频道有这样的节目 channel1 = DatagramChannel.open(); channel1.configureBlocking(false); channel1.socket().bind(new InetSocketAddress(localPort)); channel1.connect(socketAddress); SelectionKey key1 = channel1.register(re

使用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,使其也在同一端口上侦听,因为我无法再次绑定()。

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

一次只能将一个资源绑定到一个端口,即使在NIO中,afaik。@Fildor这对于UDP来说是不正确的,或者对于TCP,如果每次使用不同的接口。@EJP谢谢。看来我应该读懂NIO。我们仍然在使用“老东西”。(@Fidor它与NIO没有任何关系。这些是UDP和TCP的基本属性,可以通过任何API获得,如果您对它们发表评论,您应该已经知道。NIO或任何其他API都无法对此做任何事,即使它愿意。