2015-02-24 4 views
4

Я пытаюсь создать сервер с асинхронной моделью связи и хочу связывать несколько портов, но он вызывает ошибку «AlreadyBoundException», когда я вызываю еще один метод привязки. Есть ли способ сделать это? Вот мой кодКак связать несколько портов с помощью AsynchronousServerSocketChannel?

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

Вы можете связывать только один AsynchronousServerSocketChannel (или любой другой NetworkChannel или Socket) к одному порту. Метод bind() выбрасывает AlreadyBoundException, если сокет уже связан

Вы можете, однако, использовать с несколькими AsynchronousServerSocketChannel, по одному для каждого порта.

Смежные вопросы