我尝试使用异步通信模型创建服务器并希望绑定多个端口,但它会抛出错误" 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));
答案 0 :(得分:0)
您只能将单个AsynchronousServerSocketChannel
(或任何其他NetworkChannel
或Socket
)绑定到一个端口。如果套接字已绑定,则bind()
方法抛出AlreadyBoundException
但是,您可以使用多个AsynchronousServerSocketChannel
,每个端口一个。