社区
Java SE
帖子详情
如何在客户端方判断socket连接是否关闭
gqlao
2004-04-29 10:02:27
我用了socket的isconnected()来判断,然后在连接上服务器端后关闭服务端程序,那么连接应该是中断了吧,可是客户端的isconnected()仍然是true,请问在客户端方判断socket连接的状态应该用什么方法,谢谢。
...全文
449
6
打赏
收藏
如何在客户端方判断socket连接是否关闭
我用了socket的isconnected()来判断,然后在连接上服务器端后关闭服务端程序,那么连接应该是中断了吧,可是客户端的isconnected()仍然是true,请问在客户端方判断socket连接的状态应该用什么方法,谢谢。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
gqlao
2004-04-29
打赏
举报
回复
原来是这样,谢谢楼上各位给的清楚的说明!read抛出异常我知道是断开的,但本来我以为read返回-1并不是代表断开而只是没有收到包。这下解决了我一个大疑问了,谢谢!
ldbingshui
2004-04-29
打赏
举报
回复
检查异常阿
bigcrazy
2004-04-29
打赏
举报
回复
断开会抛出异常的。只需要捕捉异常就可以知道是否断开了。
darksmile
2004-04-29
打赏
举报
回复
正常情况下tcp连接被断开要经过3次握手,然后释放所有资源。这叫做雅致断开,这种情况下双方都知道连接已断开,所以read能够正常返回-1
但是由于网络程序的特殊性,有可能因为网络故障等原因造成不经过3次握手而强行断开,这种情况下双方可能不知道连接实际已经不存在了,所以read会抛出异常
一般这样处理:检查read的返回值,如果是-1则做断开处理,如果read时抛出IOException也做断开处理,如果read正常返回则做接收到数据的操作
gqlao
2004-04-29
打赏
举报
回复
谢谢楼上的解答
"如果连接被雅致断开,那么read返回-1"
这个何解?
darksmile
2004-04-29
打赏
举报
回复
isconnected表示连接是否成功,不能用来判断是否断开
java的socket都是阻塞的,只有一个办法用来判断是否断开:
用socket取得对应的InputStream,然后调用read
如果连接存在,而且有数据可读,那么read返回读出的数据
如果连接存在,但是没有数据可读,那么read将阻塞
如果连接被雅致断开,那么read返回-1
如果连接被强行断开,那么read抛出IO异常
QT TCP服务端如何
判断
客户端
已断开
连接
- 北冥有鱼的博客 - CSDN博客1
本文链接:https://blog.csdn.net/tt1995cc/article/details/70770042在用QT写服务端时想要知道
客户端
是否
断开
如何在C语言中
判断
socket
是否
已经断开
在WINDOWS下比较简单,可以使用FD_CLOSE事件
判断
SOCKET
是否
已经断开 view plaincopy to clipboardprint? bool Is
Socket
Closed(
SOCKET
client
Socket
) { bool ret = false; HANDLE closeEvent = WSACreateEvent();...
客户端
怎么
判断
Socket
连接
已与服务器断开
下面来罗列一下
判断
远端已经断开的
方
法: ...当recv()返回值小于等于0时,...但是还需要
判断
errno
是否
等于 EINTR,如果errno == EINTR 则说明recv函数是由于程序接收到信号后返回的,
socket
连接
还是正常的,
服务器中
判断
客户端
socket
断开
连接
的
方
法
1, 如果服务端的
Socket
比
客户端
的
Socket
先
关闭
,会导致
客户端
出现TIME_WAIT状态,占用系统资源。所以,必须等
客户端
先
关闭
Socket
后,服务器端再
关闭
Socket
才能避免TIME_WAIT状态的出现。 2, 在linux下写
socket
的...
Linux
判断
tcp
socket
连接
断开的
方
法
Linux C代码
客户端
判断
tcp
socket
连接
断开或丢失的
方
法 当建立TCP
socket
连接
后,作为
客户端
需要对tcp的
连接
做维护。如果
连接
断开需要重连等操作。但是在
socket
tcp C库代码中没有提供
判断
连接
是否
正确的接口调用...
Java SE
62,614
社区成员
307,327
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章