5

非同期通信モデルでサーバーを作成しようとしていて、複数のポートをバインドしたいのですが、複数の bind メソッドを呼び出すと、「AlreadyBoundException」というエラーがスローされます。これを行う方法はありますか?これが私のコードです

try(AsynchronousServerSocketChannel listener = AsynchronousServerSocketChannel.open()){
                if(listener.isOpen()){
                    listener.setOption(StandardSocketOptions.SO_RCVBUF, 4*1024);
                    listener.setOption(StandardSocketOptions.SO_REUSEADDR, true);
                    listener.bind(new InetSocketAddress(9001));
                    listener.bind(new InetSocketAddress(9002));
4

1 に答える 1

0

1 つのポートにバインドできるのは、1 つAsynchronousServerSocketChannel(またはその他のNetworkChannelまたはSocket) だけです。ソケットがすでにバインドされている場合、メソッドはAlreadyBoundExceptionbind()をスローします。

ただし、AsynchronousServerSocketChannel各ポートに 1 つずつ、複数の を使用できます。

于 2015-02-24T12:46:53.707 に答える