您的位置:首页 > 其它

NIO 学习(六) ServerSocketChannel

2017-10-25 17:07 447 查看
java NIO中的 ServerSocketChannel监听新连接进来的TCP连接的信道,像ScoketChannel

创建ServerSocketChannel

ServerSocketChannel serverChannel = ServerSocketChannel.open();
关闭ServerSocketChannle  close()

ServerSocketChannle监听连接

ServerSocketChannel serverChannel = ServerSocketChannel.open();
while(true){
SocketChannel accept = serverChannel.accept();
}

accept方法监听新进来的连接,当accept方法返回的时候,返回一个包含新进来的连接的SocketChannel,

accept方法将阻塞直到有新的连接到达

非阻塞模式

将ServerSocketChannel设置为非阻塞模式,调用accept方法就是异步的了,这样就算accept没有监听到新的

连接,本地也可以去做其他的任务。

ServerSocketChannel serverSocketChannel = ServerSocketChannel.open();
serverSocketChannel.bind(new InetSocketAddress("127.0.0.1", 23000));
serverSocketChannel.configureBlocking(false);
while(true){
SocketChannel accept = serverSocketChannel.accept();
if(accept!=null){
//说明有新的连接,连接到服务器
}else{
//说明没有新的连接,可以去做其他事情
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息