免费注册 查看新帖 |

Chinaunix

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

急!!!tcp如何实时检测通讯对象的连接状态。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2002-07-31 21:37 |只看该作者 |倒序浏览
情况介绍:
一台PC机(SERVER),有且只有一台单片机(CLIENT)。
SERVER建立后便间隔一段时间向CLIENT发包。 而CLIENT的断开只有通过断电处理,而且,断电与再连接SERVER速度是非常快的。
出现的情况是,CLIENT断电重起了,SERVER还在向外发包。CLIENT并没有收到,估计也没有连接到SERVER(因为SERVER的MAX CONNECTION是1)。过了非常长的时间,SERVER提示出错然后重新ACCEPT CLIENT的连接, 恢复正常。

显然这样长时间的等待是不行了,通过什么办法可以象每次检查一个变量那样来检测当前的连接状态信息呢? 或者怎样能够将SERVER端的等待时间缩短?

这个问题非常急,希望高手能够指教,在下先谢了!本人在上海,能够提供帮助者本人请客吃饱!! :)

论坛徽章:
0
2 [报告]
发表于 2002-07-31 21:59 |只看该作者

急!!!tcp如何实时检测通讯对象的连接状态。

pc上面是用的什么系统?win?unix?这个问题应该不是很难解决吧。看在你这么好心的要请客,告诉你吧,我也在上海,有问题直接发mail给我好了,ergataner@hotmail.com,嘿嘿,请客哦。我现在帮你试一下win和freebsd好了。:),有结果,我贴上来。

论坛徽章:
0
3 [报告]
发表于 2002-07-31 22:33 |只看该作者

急!!!tcp如何实时检测通讯对象的连接状态。

PC上的是red hat 7.3 linux.


     &#59;~~~~~~~~~~~~(

论坛徽章:
0
4 [报告]
发表于 2002-08-01 09:15 |只看该作者

急!!!tcp如何实时检测通讯对象的连接状态。

可以使用“带外数据”检测连接状态,又不影响正常的数据传输。

论坛徽章:
0
5 [报告]
发表于 2002-08-01 09:19 |只看该作者

急!!!tcp如何实时检测通讯对象的连接状态。

有两种办法可以解决你的问题。
第一种是自己写一个套接字读、写操作超时处理机制,一旦超时就认为对方已经崩溃。
第二种是利用套接口保持存活选项(SO_KEEPALIVE)。

论坛徽章:
7
数据库技术版块每日发帖之星
日期:2015-08-09 06:20:00数据库技术版块每日发帖之星
日期:2015-11-03 06:20:00数据库技术版块每日发帖之星
日期:2016-02-20 06:20:00数据库技术版块每日发帖之星
日期:2016-07-13 06:20:00数据库技术版块每日发帖之星
日期:2016-07-31 06:20:00数据库技术版块每日发帖之星
日期:2016-08-01 06:20:00数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
6 [报告]
发表于 2002-08-01 09:42 |只看该作者

急!!!tcp如何实时检测通讯对象的连接状态。

啊。很简单,用ioctl定义一个SO_KEEPALIVE就行了。
不过更好的是自己另外实现一个控制信道在Client和Server 间互通消息。

呵呵。我也是上海的…… //虎视中

论坛徽章:
0
7 [报告]
发表于 2002-08-01 13:03 |只看该作者

急!!!tcp如何实时检测通讯对象的连接状态。

不建议采用SO_KEEPALIVE选项!
因为默认设置是空闲2小时才发送一个“保持存活探测分节”,不能保证实时检测!
当然也可以修改时间间隔参数,但是会影响到所有打开此选项的套接口!
因此还是自己编写超时机制比较好,可以根据应用的可靠性程度灵活设置超时。

论坛徽章:
0
8 [报告]
发表于 2002-08-23 14:41 |只看该作者

急!!!tcp如何实时检测通讯对象的连接状态。

看一下Unix网络编程, 利用TCP带外数据,自己做个客户-服务心跳函数

论坛徽章:
0
9 [报告]
发表于 2002-08-25 16:11 |只看该作者

急!!!tcp如何实时检测通讯对象的连接状态。

只管吃饱不管吃好,每人10碗米饭,撑死你们,哈哈

论坛徽章:
0
10 [报告]
发表于 2002-08-28 00:25 |只看该作者

急!!!tcp如何实时检测通讯对象的连接状态。

可用发送OOB数据进行心跳检测,这样可避免此类情况!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP