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{
//说明没有新的连接,可以去做其他事情
}
}