如何使用AsynchronousServerSocketChannel绑定多个端口?

时间:2015-02-24 12:27:40

标签: java serversocket channel nio2

我尝试使用异步通信模型创建服务器并希望绑定多个端口,但它会抛出错误" 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));

1 个答案:

答案 0 :(得分:0)

您只能将单个AsynchronousServerSocketChannel(或任何其他NetworkChannelSocket)绑定到一个端口。如果套接字已绑定,则bind()方法抛出AlreadyBoundException

但是,您可以使用多个AsynchronousServerSocketChannel,每个端口一个。