socketchannel在客户端链接断开时的问题

当客户端的链接异常断开,此时代表这个链接的channel一直处于readable的状态,如何检查链接已断开呢?

一段时间的试验发现,链接断开后,虽然该channel的ready operation是OP_READ,但是此时channel.read(buffer)返回-1,此时可以增加一个判断

//链接异常中断,关闭channel
if(count < 0){
socketChannel.close();
}

你可能感兴趣的:(socket)