java socket API:识别封闭的连接
必须准确地确定连接状态,您必须与套接字进行积极交互。以下是几种方法:数据交换:试图将数据写入输出流并捕获其抛出的异常可以指示封闭的连接。但是,这种方法不断发送不必要的流量,并且不是理想的。
阻止输入/输出:
当连接有序时,阻止操作,例如readline()或read(),将返回可预测的值(-1或null)。不幸的是,如果突然删除连接,此方法可能不会及时。配置读取超时可以帮助检测非活动连接。如果超时在接收数据之前到期,则可能会丢失连接。
在Java 7及更高版本中,使用OP_READ使用Select()可以检测封闭的连接,而当关联的选择keke无效时。但是,此行为可能会因平台和JRE版本而异。免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3