NIO 学习(六) ServerSocketChannel

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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值