记录心跳包编写

最近开发一个项目,用了心跳包,在这里写一笔。

  • 首先在Server端设立一个倒计时,比方说隔9秒去检测一下心跳包标记(一个flag,当收到心跳包时置为true),如果为false则关闭连接处理后事,否则将标记设置为false。

  • 然后在Server端设立一个接收心跳包就反馈心跳包并且将心跳包标记设置为true的机制。

  • 最后在Client端设置一个循环,可以在Thread里,每隔6秒检查一下服务器的心跳包反馈,如果有就发送一个心跳包,如果没有就关闭连接处理后事。

之间的心跳包联系大概是:

  1. 客户端发送心跳包然后sleep(6);
  2. 服务器接收到心跳包,flag = true,回复心跳包
  3. 服务器已经sleep了9秒,去检测flag,为true,接着sleep(9)
  4. 客户端sleep了6秒去检查心跳包反馈,发现收到,发送心跳包,sleep(6)
  5. 重复2
  6. 重复3
  7. 客户端掉线了,没有发送心跳包
  8. 服务器sleep了9秒,去检测flag,为false,服务器断开和客户端的链接

反过来,服务器掉线则是:

  1. 客户端发送心跳包然后sleep(6);
  2. 服务器接收到心跳包,flag = true,回复心跳包
  3. 服务器已经sleep了9秒,去检测flag,为true,接着sleep(9)
  4. 客户端sleep了6秒去检查心跳包反馈,发现收到,发送心跳包,sleep(6)
  5. 服务器掉线了,没有反馈心跳包以及设置flag
  6. 服务器已经sleep了9秒,去检测flag,为false,关闭与客户端链接
  7. 客户端sleep了6秒去检查心跳包反馈,发现没收到,关闭与服务器连接
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dis2017

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值