NIO 学习(六) ServerSocketChannel

来源:互联网 发布:springmvc json 编辑:程序博客网 时间:2024/06/07 10:09

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