IOCP在硬件出现故障的时候! 服务是怎么知道的?(200分)

  • 主题发起人 主题发起人 kk2000
  • 开始时间 开始时间
K

kk2000

Unregistered / Unconfirmed
GUEST, unregistred user!
听说使用心跳包,但心跳包是怎么实现的!
如果服务器已经接入几千个客户,那么都要对他进行
检查吗? 这个检查是怎么样的检查? 如果客户端真发生
硬件故障了! 再向该客户发送数据,会返回什么错误??
 
心跳包也起到维护链路的作用的同时,无线数据终端和数据中心之间也通过心跳包来确定之间的链路是否正常。据此数据中心判断此无线数据中心是否掉线。终端则据此判断是否需要进行断链重联。心跳间隔指多少秒发送一个心跳包给数据中心。心跳超时指多少秒没有接到心跳应答包就认为已经掉线。一般两值的设定和网络有关状况有关。心跳间隔一般30秒,心跳超时为心跳间隔的三倍。
用户可以在终端设定此两项配置,也可以在数据中心设定。数据中心的设定要比终端的设定有优先权,也就是说,如果在终端设定心跳间隔为30秒,而在数据中心设定为40秒,则心跳间隔为40秒
 
自己问自己答了
 
为了减少服务端的工作压力可以用以下方案: C定时向S发送心跳包(30/次) S收到C的心跳包后将包到来的时间记录到数据库中去.(并不须回C我收到你的心跳包) 如果S想检测该C是不是仍在线,可取出最后一次心跳时间然后与当前时间进行比较如果大于30秒,则认为该C已经断线了,否则该C仍在线. 这种方案适合于客户端意外断线,或卦了.通常情况下客户正常下线是要发一个包告诉服务端我已经下线了.

我把我的东西放到这里来.呵呵.
没人关注这样的问题啊!!
 
接受答案了.
 
后退
顶部