2013-02-06 109 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.然後你可以綁定它們全部。