当客户端的链接异常断开,此时代表这个链接的channel一直处于readable的状态,如何检查链接已断开呢?
一段时间的试验发现,链接断开后,虽然该channel的ready operation是OP_READ,但是此时channel.read(buffer)返回-1,此时可以增加一个判断
//链接异常中断,关闭channel
if(count < 0){
socketChannel.close();
}
本文介绍了一个使用Java NIO实现的简单服务器程序,该程序能够处理多个客户端连接,并通过选择器(Selector)机制高效地管理Socket通道。文章详细展示了如何监听客户端连接请求、读取客户端数据,并特别关注了如何检测客户端连接异常断开的情况。
当客户端的链接异常断开,此时代表这个链接的channel一直处于readable的状态,如何检查链接已断开呢?
一段时间的试验发现,链接断开后,虽然该channel的ready operation是OP_READ,但是此时channel.read(buffer)返回-1,此时可以增加一个判断
//链接异常中断,关闭channel
if(count < 0){
socketChannel.close();
}
1万+
1万+

被折叠的 条评论
为什么被折叠?