社区
C语言
帖子详情
自己写心跳包呢?
liulin2018
2012-07-17 11:29:04
tcp_keepalive机制内嵌入一个心跳包
为毛还要 自己写心跳包呢?
谁有windows的心跳包源码啊,
...全文
1034
8
打赏
收藏
自己写心跳包呢?
tcp_keepalive机制内嵌入一个心跳包 为毛还要 自己写心跳包呢? 谁有windows的心跳包源码啊,
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
赵4老师
2012-07-17
打赏
举报
回复
File: "C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Include\MSTcpIP.h" 13 occurrences found on 13 lines
6: /* Argument structure for SIO_KEEPALIVE_VALS */
19: #define SIO_KEEPALIVE_VALS _WSAIOW(IOC_VENDOR,4)
liulin2018
2012-07-17
打赏
举报
回复
我想了解的就是:比如 服务器和多个客户端用传输层的socket通信,服务器或者客户端需要知道其是否在线。采用的技术。
我在网上找了很久,就么有找到一个能够用在项目的中例子。 不知道你方便提供吗?并非你说的那么高档
[Quote=引用 6 楼 的回复:]
你说的心跳包源码是什么意思呢?这个和协议相关的。比如sip协议用option做心跳,rtsp协议用get_parameter做心跳。
[/Quote]
sadgod
2012-07-17
打赏
举报
回复
[Quote=引用 5 楼 的回复:]
小心“心跳包”内容意外插入到“数据包”中间!
这种Bug当年可是耗费了本ID半年时间才发现的!
[/Quote]
你说的问题是没有做流解析导致的包?多个数据包一次recv到buf中了。这个问题实在。。呵呵
sadgod
2012-07-17
打赏
举报
回复
你说的心跳包源码是什么意思呢?这个和协议相关的。比如sip协议用option做心跳,rtsp协议用get_parameter做心跳。
赵4老师
2012-07-17
打赏
举报
回复
小心“心跳包”内容意外插入到“数据包”中间!
这种Bug当年可是耗费了本ID半年时间才发现的!
liulin2018
2012-07-17
打赏
举报
回复
你好,大牛,你能提 心跳包源码吗,
自己写的,
谢谢了啊。
[Quote=引用 3 楼 的回复:]
原因好多啊
1、如楼上所说,tcp_keepalive功能默认时间2个小时,至于影响不影响所有socket未知,应该可以单个soket设置?
2、tcp_keepalive的功能通过NAT映射、防火墙等地方的时候是否存在问题貌似不能十分确定100%没问题,有时候你和远端连接,双方显示没断,但是实际上中间的NAT防火墙早已给你断开
3、自定义心跳一般带有统计或者控制信令或者通知等等功能,一个指……
[/Quote]
sadgod
2012-07-17
打赏
举报
回复
原因好多啊
1、如楼上所说,tcp_keepalive功能默认时间2个小时,至于影响不影响所有socket未知,应该可以单个soket设置?
2、tcp_keepalive的功能通过NAT映射、防火墙等地方的时候是否存在问题貌似不能十分确定100%没问题,有时候你和远端连接,双方显示没断,但是实际上中间的NAT防火墙早已给你断开
3、自定义心跳一般带有统计或者控制信令或者通知等等功能,一个指令多个用途,比较灵活。
fdl19881
2012-07-17
打赏
举报
回复
tcp_keepalive功能*可能*会影响系统范围内的所有socket .. 且默认是2小时。 (某些系统上)
基于这种情况 , 一般都是自己实现keepalive机制 。
http://msdn.microsoft.com/en-us/library/windows/desktop/ee470551(v=vs.85).aspx
netty心跳通讯代码讲解与生成exe的课程
本课程主要基于netty框架的源代码,实现netty客服端与服务端的心跳通讯,主要分为三个步骤,第一是释放源代码。第二是源代码讲解。第三是源代码的客户端与服务端的心跳实验。
记录
心跳包
编
写
最近开发一个项目,用了
心跳包
,在这里
写
一笔。 首先在Server端设立一个倒计时,比方说隔9秒去检测一下
心跳包
标记(一个flag,当收到
心跳包
时置为true),如果为false则关闭连接处理后事,否则将标记设置为false。 然后在Server端设立一个接收
心跳包
就反馈
心跳包
并且将
心跳包
标记设置为true的机制。 最后在Client端设置一个循环,可以在Thread里,每隔6秒检查一下...
什么是
心跳包
?
心跳包
就是在客户端和服务器间定时通知对方自己状态的一个自己定义的命令字,按照一定的时间间隔发送,类似于心跳,所以叫做
心跳包
。 用来判断对方(设备,进程或其它网元)是否正常运行,采用定时发送简单的通讯包,如果在指定时间段内未收到对方响应,则判断对方已经离线。用于检测TCP的异常断开。基本原因是服务器端不能有效的判断客户端是否在线,也就是说,服务器无法区分客户端是长时间在空闲,还是已经
C++ TCP socket
心跳包
示例程序
在做游戏开发时,经常需要在应用层实现自己的心跳机制,即定时发送一个自定义的结构体(
心跳包
),让对方知道自己还活着,以确保连接的有效性。在TCP socket心跳机制中,
心跳包
可以由服务器发送给客户端,也可以由客户端发送给服务器,不过比较起来,前者开销可能更大。—— 这里实现的是由客户端给服务器发送
心跳包
,基本思路是:1) 服务器为每个客户端保存了IP和计数器count,即map<fd, pa...
Qt之TCP
心跳包
Qt之TCP
心跳包
当Qt作为客户端程序,而服务器需要监控客户端的在线状态时,就需要Qt端发送
心跳包
。
心跳包
可以是TCP也可以是UDP,这里介绍TCP
心跳包
的实现方法。
心跳包
通常要单开一个线程,在进程运行的过程中一直执行。 代码示例: .h文件 #ifndef HEARTBEATTHREAD_H #define HEARTBEATTHREAD_H #include <QThread> #include <QCoreApplication> #include <QTimer&
C语言
69,371
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章