2013-02-06 81 views
2

使用NIO,如何在同一台计算机上注册多个客户端连接以侦听同一端口。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); 

现在怎么办我配置通道2也再次收听同一端口上,因为我不能绑定()。

+0

即使在NIO afaik中,一次只能绑定一个资源到一个端口。 – Fildor

+1

@Fildor对于UDP或TCP,如果每次使用不同的接口,则这是不正确的。 – EJP

+0

@EJP谢谢。似乎我应该读入NIO。我们仍然使用“旧的东西”:( – Fildor

回答

1

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