keepalive心跳包
程序员文章站
2024-03-22 22:08:40
...
static int setup_ip_heartbeat(int fd)
{
int ret = -1;
// open keepalive on fd
int alive = 1;
ret = setsockopt(fd, SOL_SOCKET, SO_KEEPALIVE, &alive, sizeof(alive));
if(ret < 0) {
perror("setsockopt:");
return -1;
}
// 60s no socket data, send heartbeat package
int idle = 60;
ret = setsockopt(fd, SOL_TCP, TCP_KEEPIDLE, &idle, sizeof(idle));
if(ret < 0) {
perror("setsockopt:");
return -1;
}
// if without any respond, 30s later resend package
int intv = 3;
ret = setsockopt(fd, SOL_TCP, TCP_KEEPINTVL, &intv, sizeof(intv));
if(ret < 0) {
perror("setsockopt:");
return -1;
}
//try to send 3 times, without any response,mean connect lose
int cnt = 1;
ret = setsockopt(fd, SOL_TCP, TCP_KEEPCNT, &cnt, sizeof(cnt));
if(ret < 0) {
perror("setsocket:");
return -1;
}
}
#include <netinet/tcp.h>
#include <sys/socket.h>
上一篇: c++里面的静态成员和静态变量
推荐阅读
-
keepalive心跳包
-
TCP连接探测中的Keepalive和心跳包
-
BLE如何发送超过一包为20个字节的问题
-
【免费下载】全网最全5G资料包(报告、白皮书、方案、政策等1300余份,持续更新)...
-
使用Oracle的DBMS_SQL包执行动态SQL语句 博客分类: 数据库 SQLOracleCC++C#
-
MATLAB 备忘录 M_map包 散点图制作
-
利用第三方开源包cpdetector获取文件编码格式 博客分类: 编程 javachardet-1.0cpdetector-1.0.10
-
Byte 类源码分析 博客分类: Java Lang 包 JDKByte类Lang包
-
雷电模拟器+Proxifier+burp绕过APP抓包检测
-
(精华)2020年7月4日 JavaScript高级篇 ES6(闭包底层)