社区
C语言
帖子详情
自己写心跳包呢?
liulin2018
2012-07-17 11:29:04
tcp_keepalive机制内嵌入一个心跳包
为毛还要 自己写心跳包呢?
谁有windows的心跳包源码啊,
...全文
1107
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
delphi 接收
心跳包
怎么
写
本文介绍了如何在Delphi中利用心跳机制来判断和维持网络套接字的可用性,避免了频繁的网络连接检查,提高了网络应用的稳定性和效率。通过设置心跳间隔和发送次数,可以确保在客户端断线后及时发现并处理连接问题。
使用netty
写
一个
心跳包
该示例展示了如何利用Netty框架创建一个HeartbeatClient,通过定制的HeartbeatHandler处理心跳事件。当检测到5秒的空闲状态时,客户端自动发送
心跳包
到服务器以保持连接活跃。,
java f5
心跳包
_java的自动发送
心跳包
究竟是该
写
在服务器还是客户端
Java
心跳包
的设置通常在客户端进行,使用socket.setKeepAlive()方法。心跳检测通过CommandDeal类实现,当超过预设的最大等待时间未收到响应时,会自动发送
心跳包
。此实现包括HBHBThread和HBHBCommandDeal两个类,用于管理和处理心跳命令。
java发送
心跳包
_java的自动发送
心跳包
究竟是该
写
在服务器还是客户端
本文介绍了一种基于客户端的心跳检测机制实现方式。通过一个循环线程监控与服务器的最后通信时间,若超过预设的最大等待时间,则发送
心跳包
进行连接状态确认。
C语言
70,039
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章