自己写心跳包呢?

liulin2018 2012-07-17 11:29:04
tcp_keepalive机制内嵌入一个心跳包

为毛还要 自己写心跳包呢?

谁有windows的心跳包源码啊,
...全文
1034 8 打赏 收藏 转发到动态 举报
写回复
用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

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧