2015-02-24 39 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(或任何其他NetworkChannelSocket)到一個端口。如果套接字已經綁定,則bind()方法將拋出AlreadyBoundException

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