如何判断Socket连接失效
现在都搞升级,本人也也使用JDK6进行开发。在开发工程中对Socket进行管理时对于这个连接的超时和是否失效进行研究。结果网上的资料很是让人失望,可以说google和百度下来,前几页原创很少都是抄袭。
说正经的,对于连接超时和失效肯定会想到设置超时时间和判断连接是否可用。但是设置超时时间后起作用是在调用read方法的时候,如果只是设置了超时时间却没有调用read,那么就算服务端中断连接,客户端也是无法得知的。而且就算read异常,当前的连接仍然是有效的。
我们来看如下代码运行后再继续:
服务端:
InputStream ips = socket.getInputStream();byte[] bt = inputStreamToByte(ips);if(null != bt)System.out.println(new String(bt));elseSystem.out.println("Bt is null");System.out.println("****************************");
?bt会一直是Null。为什么?因为我说的是对的!
哥通过示例说问题,也许不对有纰漏,但是咱绝对不去Copy,因为咱已经看厌了Copy!
?
1 楼 zhangzhikaixinya 2012-04-26 感谢分享!讲的很好 2 楼 cuisuqiang 2012-04-26 zhangzhikaixinya 写道感谢分享!讲的很好