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);

次に、bind()を再度実行できないため、同じポートでリッスンするようにchannel2を構成するにはどうすればよいですか。

4

1 に答える 1

1

各チャネルをバインドする前に、NごとにchannelN.socket()。setReuseAddress(true)を呼び出す必要があります。その後、すべてのチャネルをバインドできます。

于 2013-02-06T23:24:43.877 に答える