news 2026/8/6 0:58:45

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

作者头像

张小明

前端开发工程师

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/7/29 23:21:47

【C/C++】数据在内存中的存储

整数的原、反、补码都相同。负整数的三种表示方法各不相同。原码&#xff1a;直接将数值按照正负数的形式翻译成⼆进制得到的就是原码。反码&#xff1a;将原码的符号位不变&#xff0c;其他位依次按位取反就可以得到反码。补码&#xff1a;反码1就得到补码。对于整形来说&…

作者头像 李华
网站建设 2026/7/26 11:19:23

高精度算法:突破整型限制的算法实现【C++实现】

本文将带你了解 高精度算法 的背景、原理&#xff0c;并以 C 实现为例&#xff0c;展示完整的代码与讲解。一、背景介绍高精度算法主要用于解决如下问题场景&#xff1a;大数计算&#xff0c;如计算 11112345678901234567890 和 111198765432109876543210的运算&#xff1b;竞赛…

作者头像 李华
网站建设 2026/8/4 17:47:40

PyTorch-CUDA-v2.6镜像部署AutoGPT自动化任务实验

PyTorch-CUDA-v2.6镜像部署AutoGPT自动化任务实验 在现代AI系统开发中&#xff0c;一个常见的痛点是&#xff1a;算法模型跑得通&#xff0c;但环境配置耗时数天。尤其是在运行如AutoGPT这类依赖大语言模型、向量数据库和复杂工具链的自动化智能体时&#xff0c;开发者常常陷入…

作者头像 李华
网站建设 2026/8/4 17:48:27

CSS3 2D变换

一、2D位移二、缩放三、旋转四、扭曲五、多重变换六、变换原点

作者头像 李华
网站建设 2026/7/28 23:02:49

手把手教你在TC3xx上移植AUTOSAR OS(入门必看)

手把手教你在TC3xx上跑起AUTOSAR OS&#xff1a;从启动到调度的实战指南你有没有遇到过这样的情况&#xff1f;代码烧进去&#xff0c;StartOS()也调用了&#xff0c;但板子就是“死”在那里——LED不闪、CAN没波形、调试器一看&#xff0c;Core0卡在启动流程里动弹不得。别急&…

作者头像 李华