社区
Linux/Unix社区
帖子详情
客户端和服务器端非正常断开的问题。
isam
2004-03-23 01:44:51
如果服务器端和客户端由于断网和断电等原因连接断开了,服务器端怎么知道客户端断开了?出了心跳测试还有其它什么好的办法?大家常用的是什么办法?
...全文
111
7
打赏
收藏
客户端和服务器端非正常断开的问题。
如果服务器端和客户端由于断网和断电等原因连接断开了,服务器端怎么知道客户端断开了?出了心跳测试还有其它什么好的办法?大家常用的是什么办法?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wxywh
2004-03-25
打赏
举报
回复
捕捉到SIGPIPE信号以后,要么忽略,要么做自己的事,程序是不会崩溃的。
isam
2004-03-25
打赏
举报
回复
那就是说只有用hart beaten 不断的又客户端返回存活消息才能知道客户端还在线了,不发的时候就表示挂了。
顺便问一下,SIGPIPE信号捕捉到以后程序是不是就不会崩溃了?
isam
2004-03-24
打赏
举报
回复
是不是往客户机发消息的时候检测呀?
benbensan
2004-03-24
打赏
举报
回复
服务器只能通过write才能检测,如果socket为阻塞的,则服务器的tcp协议栈会不断的重发,最后返回-1,errno设置为超时或者不可到达。
楼上有位提到的SIGPIPE应该不会出现,除非服务器write的过程中机器重起成功,此时客户收到服务器的第一个tcp分节时会响应一个RST,收到服务器的第二个tcp分节时才会报SIGPIPE
如果网络暂时断开后又恢复正常(在tcp重发分节的时限内),服务器和客户端应该都检测不到,又可以恢复正常
gaoxianfeng
2004-03-24
打赏
举报
回复
tcp本次发送就可以知道
udp 要等下一次发送 当然中间时间要够对方协议栈返回信息的时间
tcp会定时监测对端连接情况
morebin
2004-03-23
打赏
举报
回复
只有下一次发送数据时才能检测到吧,这时才会触发SIGPIPE信号。
wxywh
2004-03-23
打赏
举报
回复
检测到SIGPIPE信号时,表示网络断开。
Go语言公链开发实战
联盟链和私有链也统称为许可链,公有链称为非许可链。 公有区块链系统 公有链中,任何节点无须任何许可便可随时加入或脱离网络。从最早的比特币系统人手介绍公有链系统的发展现状。 点对点电子现金...
Socket 处理
客户端
、
服务器端
断开
连接
一般是用来判断对方(设备,进程或其它网元)是否正常动行,一般采用定时发送简单的通讯包,如果在指定时间段内未收到对方响应,则判断对方...基本原因是
服务器端
不能有效的判断
客户端
是否在线也就是说,服务器无法区
socket
客户端
断开
后服务器怎么立马
断开
最近做一个socket服务器时,发现如果强行关闭客户终端,server会接收到一些奇怪的信息然后
非正常
退出。 原因:强行关闭客户终端后,client进程交付给初始进程。等初始进程查询到client后将它杀掉。但是在杀掉之前,...
Tcp通信中服务器处理
客户端
意外
断开
!
所谓意外
断开
,是
客户端
(多指支持3G的移动设备)指并没有关闭socket,双方并未按照协议上的四次挥手去
断开
连接,一般的处理办法都是利用保活机制。而保活机制分又可以让底层实现也可自己实现。 一、双方拟定心跳...
如何检查Socket是否
断开
在
服务器端
使用多线程方式来处理每个
客户端
的socket连接,
服务器端
不主动
断开
链路,也没有心跳机制来维护连接的状态,
客户端
发送数据的时间也是不一定的,只要有采集到信令数据时才进行发送。在
客户端
socket
断开
后,...
Linux/Unix社区
23,120
社区成员
74,507
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章