用SIO_KEEPALIVE_VALS做心跳检测是不是不靠谱? 本帖最后由 oyljerry 于 2012-12-14 17:30:16 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 KEEPALIVE有有效时间是几十分钟的,,所以还是得自己实现心跳包 给你我的一点心得。 4、关于心跳信号。心跳,也称之为TCP保活定时器,是为了检测TCP链路的连接状态的。可惜保活并不是TCP规范中的一部分。套接字本身是有一套心跳保活机制的,不过默认的设置并不像我们一厢情愿的那样有效。在双方TCP套接字建立连接后,并且在两个小时左右上层没有任何数据传输的情况下,这套机制才会被激活。很多人认为两个小时的时间设置得很不合理。为什么不设置成为10分钟,或者更短的时间?(可以通过SO_KEEPALIVE选项设置。)但是这样做其实并不被推荐。实际上这套机制只是操作系统底层使用的一个被动机制,原理上不应该被上层应用层使用。当系统关闭一个由KEEPALIVE机制检查出来的死连接时,是不会主动通知上层应用的,只有在调用相应的IO操作在返回值中检查出来。因此,忘记SO_KEEPALIVE,在应用层自己写一套保活机制比较靠谱(自己来设计心跳信号吧)。 MFC怎样在自己的函数加入消息循环? 求助!怎么才dll中对话框上的listctrl中插入excel数据呢 在vc6.0中如何执行EXEC master..xp_cmdshell 子窗口获取消息 如何传给父窗口? 为什么有的avi格式的视频用CAnimateCtrl控件播放不了啊?CAnimateCtrl控件都能播放什么格式的视频啊 请教VC中使用资源的问题 UDP传输大数据时如何办? 求线程同步高手:经典生产者和消费者如何用VC实现(50),我的程序问题出在什么地方(50) FLASH是如何判断播放是否完成 如何用代码设置某个Button为默认按钮 if(Page.Create(IDD_PAGE,&m_TabCtrl)==0) //返回-1为什么? C++大神帮忙看看哈 关于WM_PAINT消息的处理机制
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货