news 2026/4/3 1:26:58

猜测心跳包机制的核心逻辑

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
猜测心跳包机制的核心逻辑

一、心跳包的作用

定时发送一个数据包,等待对方回复。

如果对方在规定时间内回复,说明连接正常;否则出现异常或者收不到回复,说明工作不正常。

二、主要逻辑

(一)定义心跳包的格式

1、发送

1字节类型(值为10)

2字节标识码(值为0xAABB)

2、回复

1字节类型(值为1)

2字节代号(默认为0xFF)

(二)定时发送心跳包

// 记录超时次数

int k = 0;

try{

oo:

while(true){

k = 0;

// 输出心跳包给对方

out.write(Util.getHeart());

// 在3次超时内读取

while(k < 3){

try{

// 设置超时时间为2秒

sock.setSoTimeout(2000);

// 读取回复

Data d = in.read();

// 如果是正确回复,跳出

if(ok(d)){

break;

} else {

// 跳出外层循环

break oo;

}

} catch(SocketException e){

// 超时,次数加一

k++;

}

}

// 如果等于3次,跳出循环

if(k == 3){

break;

}

// 休眠10秒

Thread.sleep(10000);

}

} catch(SocketException e){

}

// 打印提醒连接中断

System.out.print("失去连接");

// 其他处理,移除服务,通知运维

(三)收到心跳包,回复

while(true){

// 读取一个数据包

Data d = in.get();

// 如果类型是10,说明为心跳包

if(d.type() == 10){

// 对心跳包回复

out.write(1);

out.write(00);

out.write(0xFF);

out.flush();

}

}

三、其他情况

1、如果只是监听状态的TCP连接中断,而服务进程还在正常运行,那么此时把服务移除会错误处理。

2、解决思路

再次重连测试,只有超过1次重连后,依然无法连接,就说明服务器出现死机,可以通知运维处理或者从服务列表里移除。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/28 14:28:53

【C/C++】自定义类型:联合和枚举

给联合体其中⼀个成员赋值&#xff0c;其他成员的值也跟着变化。代码语言&#xff1a;javascriptAI代码解释#include <stdio.h> //联合类型的声明 union Un {char c;//1int i;//4 }; int main() {//联合变量的定义 union Un un {0};//计算两个变量的⼤⼩ printf("…

作者头像 李华
网站建设 2026/3/27 6:58:22

一文说清8个基本门电路图:初学者通俗解释

从零开始看懂数字电路&#xff1a;8个门电路图带你入门你有没有想过&#xff0c;手机为什么能算数&#xff1f;电脑是怎么记住信息的&#xff1f;这些看似复杂的操作&#xff0c;其实都建立在一个非常基础的电子元件之上——逻辑门电路。别被“逻辑”两个字吓到。它一点都不抽象…

作者头像 李华
网站建设 2026/3/21 17:01:12

工具zRenamer

链接&#xff1a;https://pan.quark.cn/s/68c9f67acc69软件特点1.支持文本自由改名模式&#xff1b; 2.支持拖拽文件或文件夹、支持右键、支持右键发送到&#xff1b; 3.支持正则替换删除、可自定义添加模板&#xff1b; 4.常用改名方式&#xff1a;序号、插入、删除、替换、模…

作者头像 李华
网站建设 2026/3/31 20:49:48

优邦科技冲刺创业板:上半年营收5亿,净利3955万 拟募资8亿

雷递网 雷建平 12月28日东莞优邦材料科技股份有限公司&#xff08;简称&#xff1a;“优邦科技”&#xff09;日前递交招股书&#xff0c;准备在深交所创业板上市。优邦科技计划募资8.05亿元&#xff0c;其中&#xff0c;5.19亿元用于半导体及新能源专用材料项目&#xff0c;86…

作者头像 李华
网站建设 2026/3/25 7:24:36

【Hadoop+Spark+python毕设】全国健康老龄化数据分析系统、计算机毕业设计、包括数据爬取、数据分析、数据可视化、实战教学

&#x1f393; 作者&#xff1a;计算机毕设小月哥 | 软件开发专家 &#x1f5a5;️ 简介&#xff1a;8年计算机软件程序开发经验。精通Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等技术栈。 &#x1f6e0;️ 专业服务 &#x1f6e0;️ 需求定制化开发源码提…

作者头像 李华