社区
网络编程
帖子详情
请问:编程时,怎样让服务器知道,申请了端口的客户端已经断开了连接,注意不是正常地Close()掉。如:客户端断电、死机?
strongerman
2003-04-23 09:35:04
请问:编程时,怎样让服务器知道,申请了端口的客户端已经断开了连接,注意不是正常
地Close()掉。如:客户端断电、死机?从而可以释放服务器的端口资源,让其他的连接使
用这个端口来连接服务器。
...全文
73
21
打赏
收藏
请问:编程时,怎样让服务器知道,申请了端口的客户端已经断开了连接,注意不是正常地Close()掉。如:客户端断电、死机?
请问:编程时,怎样让服务器知道,申请了端口的客户端已经断开了连接,注意不是正常 地Close()掉。如:客户端断电、死机?从而可以释放服务器的端口资源,让其他的连接使 用这个端口来连接服务器。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
21 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
barrylau
2003-04-26
打赏
举报
回复
发送Ping命令检测
weijiechen
2003-04-26
打赏
举报
回复
up
yins
2003-04-26
打赏
举报
回复
一方发个"你活着吗"到另一方,
另一方回一个"是的,还活着"就说时还连着,如果在规定的时间没有回来就说明对方死了,close掉就行了。当然,有任何数据回来都说明对方还活着。
loopyifly
2003-04-25
打赏
举报
回复
我觉得应该是客户端向服务器每隔一定时间发送检测连接包
当服务器在规定时间内没有收到客户端的检测包就认为是已经断开了
strongerman
2003-04-25
打赏
举报
回复
顶
strongerman
2003-04-25
打赏
举报
回复
up
livelivelive
2003-04-25
打赏
举报
回复
最简单的是server定时发随机数x到client,client返回x+1即可
JeasonZhao
2003-04-25
打赏
举报
回复
呵呵,心跳检测包没有这么复杂,只要对方能够返回任何包都可以认为对方“活着”
strongerman
2003-04-25
打赏
举报
回复
好! loopyifly(深情咸鱼) 的方法最清晰,我也想起了有这样现成相应的办法
具体如下:
3、 测试包数据格式
在系统启动和无三字段信息传输一定时间后,电信方发送测试包,数据格式如下:
起始符 数据内容 结束符 校验码
### TEST $$$ XXX
4、测试应答包数据格式
使用单位报警指挥系统收到测试包后,要根据校验结果进行应答,向电信方发送测试应答数据包。测试应答包数据格式如下:
起始符 应答内容 结束符
### OK $$$
若接收到的数据与测试包校验码不相符,则发送如下信息表示传输失败:
起始符 应答内容 结束符
### BAD $$$
应该就是这样吧?!
strongerman
2003-04-24
打赏
举报
回复
请问:如果要 服务器端定时发送检测包 , 那(检测包大概的格式)是如何定义的呢?
数据结构 和 算法 大概是怎样的呢?
lichungen
2003-04-24
打赏
举报
回复
其实思路上面都提到了,我来总结一下
第一种就是定时的向客户端发送信号,如果发送成功则如果客户端处于连接状态
第二种是调用SETSOCKOPT()设定KEEPALIVE选项为TRUE, 并在注册表中设置KeepAliveTime KeepAliveInterval
shilong
2003-04-24
打赏
举报
回复
玩星际时,
我把网线拨掉后在倒计时未结束前再插上居然还可以连上来~
是怎样实现的?
还有,星际的主机退出后,游戏照样进行
又是怎么实现的?难道全都是点对点通讯的?
sosolife
2003-04-24
打赏
举报
回复
gz
strongerman
2003-04-24
打赏
举报
回复
up
northpointstar
2003-04-23
打赏
举报
回复
int xx=recv(...........);
if(xx==0)
{
closesocket(client);
}
yydyqy
2003-04-23
打赏
举报
回复
服务器端定时发送检测包
zzyx
2003-04-23
打赏
举报
回复
那个超时连接似乎不管用。
大概叫KEEPALIVE,
我以前做过,经常不灵。
还是定时检测心跳保险。
liugy
2003-04-23
打赏
举报
回复
服务器有个超时连接
shesh
2003-04-23
打赏
举报
回复
在连接的过程中,不断发心跳进行检测,由服务器端来检测.
wjl_2001
2003-04-23
打赏
举报
回复
定时查询:定时发送信息包(能正常发送就证明客户端未死) 或定时扫描(扫描客户端开的端口)
加载更多回复(1)
客户端
close
以后服务端如何
知道
并执行
close
但是,四次挥手
时
当
客户端
调用
close
(socket套接字)主动
断开
以后,只是使用socket函数很难去判断
客户端
什么
时
候结束,应该什么
时
候在
服务器
去调用
close
。 这里有一下几种方法: 1.在muduo中,是
客户端
使用shutdown...
TCP
服务器
监测
客户端
异常退出方法
TCP_
CLOSE
_WAIT:是
服务器
收到
客户端
发来的FIN包以后进入的状态,FIN包是
客户端
断开
连接
进行四次挥手的第一次挥手,收到 TCP_
CLOSE
_WAIT状态代表
客户端
已经
想要
断开
连接
或者
已经
断开
连接
。心跳包的实现,心跳包就是...
关于socket
编程
中
服务器
端如何检测
客户端
连接
断开
的问题
由于在tcp通信中
客户端
与
服务器
端的通信是基于握手协议的,所以一旦
客户端
断开
与
服务器
端的
连接
时
,
服务器
端需要检测
客户端
的这个动作,并返回到
端口
侦听状态而不是继续处于读缓冲区数据状态,否则
客户端
下次就无法...
TCP通信中
服务器
处理
客户端
意外
断开
如果TCP
连接
被对方正常关闭,也就是说,对方是正确地调用了
close
socket(s)或者shutdown(s)的话,那么上面的Recv或Send调用就能马上返回,并且报错。这是由于
close
socket(s)或者shutdown(s)有个正常的关闭过程,会...
[C++]
服务器
与
客户端
建立
连接
与检测
断开
的demo
Window下以C++为
编程
语言,基于TCP的
客户端
和服务端的
连接
与
断开
demo
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章