服务器端如何知道客户端的网络状态变化

hanyj_3000 2011-12-05 03:22:19
服务器端如何知道客户端的网络状态变化

我的电脑现在是作服务器端,跑起来的一个应用程序打开了一个监听端口来监听并等待一个嵌入式设备的连接(使用的是TCP协议),现在服务器端和客户端(嵌入式设备)连接上了。我的问题如下:

如果这个客户端的嵌入式设备的网络状态发生了变化,比如掉线或被碰到断线了,或者它被强行关掉电源了,我如何知道这个嵌入式设备发生了什么样的网络状态变化呢,就是如何捕捉得到?没做过,不知道怎么弄。希望大侠们给点指点
...全文
183 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
hanyj_3000 2011-12-06
  • 打赏
  • 举报
回复
非常感谢各位,心跳的知识我自己再查写资料。该结贴了
一叶之舟 2011-12-06
  • 打赏
  • 举报
回复
心跳就是客户端和服务器之间定时发送请求回应,服务器判断客户端最近发送请求时间是否超过定时间隔时间,如果超过说明客户端已经关闭或断网。
hanyj_3000 2011-12-06
  • 打赏
  • 举报
回复
我使用的是C++语言,上面的朋友说道用心跳信号来弄,这个心跳信号还真让我心跳的,一点概念都没有,还是第一次听说。
Louistao 2011-12-05
  • 打赏
  • 举报
回复
我用的java xsocket框架里面有那种断线或者连接超时的回调函数,不知道C++咋样的
qq120848369 2011-12-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 qq120848369 的回复:]

看业务需求了, 通用的办法还是心跳.

UDP心跳很简单,TCP心跳自己规定一下包的协议格式,有数据包,有心跳包,根据type区分一下就可以了.
[/Quote]

tcp的话我觉得还是客户端单独开一个端口等服务端的心跳比较通用,毕竟服务端有时候是发文件这种大数据量的东西,心跳包没有机会插足.
qq120848369 2011-12-05
  • 打赏
  • 举报
回复
看业务需求了, 通用的办法还是心跳.

UDP心跳很简单,TCP心跳自己规定一下包的协议格式,有数据包,有心跳包,根据type区分一下就可以了.
pathuang68 2011-12-05
  • 打赏
  • 举报
回复
用心跳(heart-beat)信号解决。

64,687

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧