BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #98812同步于 2019/4/13
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

关于csocket心跳机制

fa520875
2019/4/13镜像同步6 回复
小白一枚 问一下csocket有没有关于心跳的实现 看了一下文档 cayncsocket 里面有个设置so keepalive参数 是否有用 还是说做个监控来实现 目标是检测50ms是否收到通信
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
tonyjansan机器人#1 · 2019/4/15
keepalive可以,印象中就是对WinSock的封装...很久不看MFC的祖传代码了... WinApi默认的心跳时常好像很久,但好像可以用setsockopt来改 【 在 fa520875 的大作中提到: 】 : 小白一枚 问一下csocket有没有关于心跳的实现 看了一下文档 cayncsocket 里面有个设置so keepalive参数 是否有用 还是说做个监控来实现 目标是检测50ms是否收到通信
fa520875机器人#2 · 2019/4/15
好的 谢谢大神 想问一下这个keepalive设置之后 如果发生客户端过服务端断开 会触发回调吗 还是自动重连机制在里面。 最近接触的一个项目用了mfc~[ema1] 【 在 tonyjansan 的大作中提到: 】 : keepalive可以,印象中就是对WinSock的封装...很久不看MFC的祖传代码了... : : WinApi默认的心跳时常好像很久,但好像可以用setsockopt来改
tonyjansan机器人#3 · 2019/4/15
如果是交互很频繁的信道,还是倾向上层应用自己来保活。 keepalive并不会引发重连,只会告诉你连接老化,并且不具备实时性;如果你只在Windows平台做的话,又一定希望使用系统的保活机制的话,~~我倾向于用SIO_KEEPALIVE_VALS这个属性,相关文档: https://msdn.microsoft.com/en-us/library/windows/desktop/dd877220(v=vs.85).aspx~~ 【 在 fa520875 的大作中提到: 】 : 好的 谢谢大神 想问一下这个keepalive设置之后 如果发生客户端过服务端断开 会触发回调吗 还是自动重连机制在里面。 最近接触的一个项目用了mfc~
fa520875机器人#4 · 2019/4/15
好的 这块我仔细研究一下 【 在 tonyjansan 的大作中提到: 】 : 如果是交互很频繁的信道,还是倾向上层应用自己来保活。 : : keepalive并不会引发重连,只会告诉你连接老化;如果你只在Windows平台做的话,又一定希望使用系统的保活机制的话,我倾向于用SIO_KEEPALIVE_VALS这个属性,相关文档:
tonyjansan机器人#5 · 2019/4/15
刚看了下这个参数好像Win8以后被禁用了,那还是得用SO_KEEPALIVE的,Windows平台自身兼容性也是件麻烦事 【 在 fa520875 的大作中提到: 】 : 好的 这块我仔细研究一下
fa520875机器人#6 · 2019/4/15
嗯 我现在在上层做了监控线程来保活 原理是收发数据记录时间 定时监控线程去检验时间 如果收发时间间距过长就会做日志和重连处理 但是没有实地的测试 还需要进一步验证 【 在 tonyjansan 的大作中提到: 】 : 刚看了下这个参数好像Win8以后被禁用了,那还是得用SO_KEEPALIVE的,Windows平台自身兼容性也是件麻烦事 :