免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 18808 | 回复: 29
打印 上一主题 下一主题

长连接中发送“心跳包”的时机 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-09-10 15:26 |只看该作者 |倒序浏览
在socket长连接中,心跳包是什么时候发送的,是定时发送么?查了一下资料,说的是空闲发送,但是怎么判断空闲呢?

请高手指点一下,多谢。

论坛徽章:
0
2 [报告]
发表于 2007-09-10 15:30 |只看该作者
这里说的空闲意思就是没有发包也没有收包,比起定时发送,要灵活一点点,也节省一点资源。如果要求不高,定时发送也很好。

论坛徽章:
0
3 [报告]
发表于 2007-09-10 15:33 |只看该作者
主要的一点疑惑是在一个循环中如何定时发送呢?
难道是alarm,然后在信号处理中发送么,好像不对。

论坛徽章:
0
4 [报告]
发表于 2007-09-10 15:42 |只看该作者
*nix中的, 我还没学到这一步,我的AUPE只看到fork那一章。。。。
windows下有一个Waitforsingleobject可以设超时时间,也有timer可以用,据我所知,还有人用Sleep

论坛徽章:
0
5 [报告]
发表于 2007-09-10 15:44 |只看该作者
sleep不对吧,休眠状态下有新的报文要收发的话岂不是耽误了时间?
不知道这样说对不对

论坛徽章:
0
6 [报告]
发表于 2007-09-10 15:53 |只看该作者
发包基本上是不和收包同一个线程的。

论坛徽章:
0
7 [报告]
发表于 2007-09-10 15:54 |只看该作者
看到了settimer函数,也是用的SIGALRM信号,定时就是这么做的么?

论坛徽章:
0
8 [报告]
发表于 2007-09-10 16:00 |只看该作者
原帖由 我learnc 于 2007-9-10 15:53 发表
发包基本上是不和收包同一个线程的。


循环收包,收到后抛给业务处理进程,处理完毕后抛给发包进程
~~~~~~~~~~
基本上是这样么

论坛徽章:
0
9 [报告]
发表于 2007-09-10 16:02 |只看该作者
用ALARM可以实现定时吗?怎么做呢?谁能提供一些办法呢?

论坛徽章:
0
10 [报告]
发表于 2007-09-10 16:09 |只看该作者
alarm设置定时,时间到了会发出SIGALRM信号,然后在信号处理函数中做处理
这是不是实现定时?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP