客户端的socket如何判断服务端已经断开连接
我的问题是这样的:
在java的tcp的socket程序中,如果服务方或者是客户方断开了socket连接,另一方怎样才能知道对方已经关闭了连接呢?
我发现如果在调用socket对应BufferedReader的readLine方法等待数据时,如果一方断开了连接,readLine方法会马上结束挂起,并且返回null,不知使用这种方法来判断对方是否断开是否可靠?
如果tcp连接的一方正常断开了连接,应该会发送一个FIN信号,我想java的socket类中应该会有public方法来通知这种状态的,可是我在api说明中实在找不到这样的方法,所以这里请大家指点一下。
谢谢!
问题点数:100、回复次数:5Top
1 楼killme2008(为了生态平衡,请保护蛤蟆)回复于 2005-04-02 19:06:55 得分 30
Socket不是有函数吗?
isClosed()
isConnected()Top
2 楼kingfish(工作很忙,很少来csdn...)回复于 2005-04-02 19:18:25 得分 40
read时返回-1可以认为socket断开了。Top
3 楼oyljerry(【勇敢的心】→ ㊣提拉米苏√㊣)回复于 2005-04-02 19:28:23 得分 30
read返回判断一下,看是否断开Top
4 楼qybei(qybei)回复于 2005-04-02 21:12:40 得分 0
isClosed() 和 isConnected() 好像没有效果,我尝试过。
除了调用read方法以外没有其他方法了吗?Top
5 楼qybei(qybei)回复于 2005-04-03 17:36:15 得分 0
谢谢大家的帮忙Top




