首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

怎么判断Socket连接失效

2012-09-23 
如何判断Socket连接失效现在都搞升级,本人也也使用JDK6进行开发。在开发工程中对Socket进行管理时对于这个

如何判断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 写道感谢分享!讲的很好
大家一起进步,欢迎提出批评 3 楼 moyan03 2012-04-27   LZ讲的挺好的,我的那个发送了心跳了没有报错,但是卡在了读input那了。 4 楼 cuisuqiang 2012-04-27   moyan03 写道LZ讲的挺好的,我的那个发送了心跳了没有报错,但是卡在了读input那了。
就是说一直没有读到数据吧 5 楼 moyan03 2012-05-02   cuisuqiang 写道moyan03 写道LZ讲的挺好的,我的那个发送了心跳了没有报错,但是卡在了读input那了。
就是说一直没有读到数据吧
是的,用的DataInputStream。
6 楼 chenhua_1984 2012-05-23   程序正常运行,网线拔掉,socket.sendUrgentData(0xFF)方法要等待大概3分钟才报错?请教楼主这个有没有办法让它立即报错???????
7 楼 cuisuqiang 2012-05-23   chenhua_1984 写道程序正常运行,网线拔掉,socket.sendUrgentData(0xFF)方法要等待大概3分钟才报错?请教楼主这个有没有办法让它立即报错???????

你好,请你参考http://cuisuqiang.iteye.com/blog/1489661,这是我自己写的一个Socket连接池管理器,希望对你有所帮助!

热点排行