社区
C语言
帖子详情
自己写心跳包呢?
liulin2018
2012-07-17 11:29:04
tcp_keepalive机制内嵌入一个心跳包
为毛还要 自己写心跳包呢?
谁有windows的心跳包源码啊,
...全文
1065
8
打赏
收藏
自己写心跳包呢?
tcp_keepalive机制内嵌入一个心跳包 为毛还要 自己写心跳包呢? 谁有windows的心跳包源码啊,
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
Android的socket长连接(心跳检测)
这是Android的socket长连接(
心跳包
),由于本人项目中需要用到长连接,所以先做了个demo,亲测是没有问题的。
什么是
心跳包
?
心跳包
就是在客户端和服务器间定时通知对方自己状态的一个自己定义的命令字,按照一定的时间间隔发送,类似于心跳,所以叫做
心跳包
。 用来判断对方(设备,进程或其它网元)是否正常运行,采用定时发送简单的通讯包,如果在指定时间段内未收到对方响应,则判断对方已经离线。用于检测TCP的异常断开。基本原因是服务器端不能有效的判断客户端是否在线,也就是说,服务器无法区分客户端是长时间在空闲,还是已经
记录
心跳包
编
写
最近开发一个项目,用了
心跳包
,在这里
写
一笔。 首先在Server端设立一个倒计时,比方说隔9秒去检测一下
心跳包
标记(一个flag,当收到
心跳包
时置为true),如果为false则关闭连接处理后事,否则将标记设置为false。 然后在Server端设立一个接收
心跳包
就反馈
心跳包
并且将
心跳包
标记设置为true的机制。 最后在Client端设置一个循环,可以在Thread里,每隔6秒检查一下...
android
心跳包
作用,Android开发Im总结-5:
心跳包
心跳包
的作用:TCP长连接本质上不需要
心跳包
来维持, 大家可以试一试, 让两台电脑连上同一个wifi, 然后让其中一台做服务器, 另一台用一个普通的没有设置KeepAlive的Socket连上服务器, 只要两台电脑别断网, 路由器也别断电, DHCP正常续租, 就这么放着, 过几个小时再用其中一台电脑通过之前建立的TCP连接给另一台发消息, 另一台肯定能收到。那为什么要有
心跳包
呢? 其实主要是为了...
java websocket
心跳包
_web socket
心跳包
的实现方案
web socket
心跳包
的实现方案05/30/2010现在网络环境错综复杂,socket
心跳包
是获得健康强壮的连接的有效解决方案,今天,我们就在web socket中实现
心跳包
方案,是的,尽管我们只是做一个简单的聊天室,但我们让他稳定可靠一些一点也没有错。我的
心跳包
方案很是简单,原理就是间隔发送
心跳包
数据给服务器,服务器在一定时间内发回
心跳包
响应,对比超时限定,如果超过设定的超时时间,则认为当...
C语言
70,026
社区成员
243,244
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章