拨掉网络,等5分钟以上再插上网线,UDP,RTP通讯不会继续了,咋办?

红牛哥110 2018-03-08 12:02:50
一台windows运行发送程序,另一台windows运行接收程序,断网5分钟以上会出不会通讯的情况。
如果是一台windows运行发送程序,另一台linux运行接收程序,断网5分钟以上,再插上网线,会继续正常通讯。
用到的协议为UDP和RTP。
是不是通过设置SO_KEEPALIVE来解决此问题?
...全文
1267 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
水兮淼淼 2018-03-30
  • 打赏
  • 举报
回复
联网等一会再重新发送,还有检验句柄是否已经被适当。
  • 打赏
  • 举报
回复
断网5分钟,还保持连接 1.tcp, 对啊,设置SO_KEEPALIVE,可以设置tcp socket多少秒发个心跳包,就不用自己写心跳包了。 2.udp,没有连接的概念。
走好每一步 2018-03-19
  • 打赏
  • 举报
回复
断网5分钟以上, UDP发送端口缓冲区溢出了吧,可以考虑清除缓冲区和socket错误标志试试。 接收端应该是没有问题的。
xengine-qyt 2018-03-16
  • 打赏
  • 举报
回复
你发送失败了还是接收失败了啊? udp 是无状态的,keepalvive 对udp 无效。 你连问题出到哪儿都没说谁知道,看看问题出在哪儿,调用 wsagetlasterror 不就清楚了吗!
draculamx 2018-03-15
  • 打赏
  • 举报
回复
服务器端自己检测自己,比如10秒没有收到任何数据,就退出接收线程,调用closesocket,关闭套接字,然后重新初始化,重新启动接收线程,这样应该就不会有问题了 调用closesocket很关键。。。。
kinkon007 2018-03-12
  • 打赏
  • 举报
回复
SO_KEEPALIVE是tcp的
Eleven 2018-03-11
  • 打赏
  • 举报
回复
断开释放资源,重新建立socket连接~
丁劲犇 2018-03-10
  • 打赏
  • 举报
回复
udp不是面相连接的,很奇怪,说明windows下绑定的端口和网卡的状态脱节了?
赵4老师 2018-03-09
  • 打赏
  • 举报
回复
无心跳,不长连接。
Yt_737499986 2018-03-08
  • 打赏
  • 举报
回复
自己写心跳吧,清除网络遗留,不断尝试重新连接

18,355

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧