网络异常中断后又恢复,发送send包不成功,为什么啊?

BoterGod 2008-07-25 10:33:32
求救:网络正常时,客户端跟服务端每隔30秒发一个心跳包,这期间网络出现异常,客户端心跳包发送失败,在服务器规定teardown的时间内网络又恢复了,客户端仍继续发心跳包,这时服务端却不再会送应答包,好像服务端并未收到客户端的心跳包一样,到了服务器规定的teardown时间后,客户端可以收到了服务端发来的teardown中断包,请问这是怎么原因啊?高手请指点迷津啊!
...全文
230 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
neversaydie518 2008-07-26
  • 打赏
  • 举报
回复
调试呗。楼上说的是对TCP的,但是LZ使用的不一定是TCP吧。
lin_style 2008-07-26
  • 打赏
  • 举报
回复
兄弟。这就需要看源代码了。肯定又重连了。当然,如果你会抓包就更简单了,自己查看下包的流动
BoterGod 2008-07-26
  • 打赏
  • 举报
回复
可是我可以回收到服务器回送回来的teardown包啊,说明这个soket还是可以用的吧,真奇怪!
cppwin 2008-07-26
  • 打赏
  • 举报
回复
需要
lk_cool 2008-07-26
  • 打赏
  • 举报
回复
得看什么样的中断,如果你把服务器端的网线拔掉你的侦听就不好使了。
BoterGod 2008-07-26
  • 打赏
  • 举报
回复
网络中断后又重新恢复,我们需不需要重新connect呢?还是底层ip协议栈会自动帮我们连上呢?
WinEggDrop 2008-07-26
  • 打赏
  • 举报
回复
看错问题了.上面回答是错误的.
WinEggDrop 2008-07-26
  • 打赏
  • 举报
回复
[Quote=引用楼主 BoterGod 的帖子:]
求救:网络正常时,客户端跟服务端每隔30秒发一个心跳包,这期间网络出现异常,客户端心跳包发送失败,在服务器规定teardown的时间内网络又恢复了,客户端仍继续发心跳包,这时服务端却不再会送应答包,好像服务端并未收到客户端的心跳包一样,到了服务器规定的teardown时间后,客户端可以收到了服务端发来的teardown中断包,请问这是怎么原因啊?高手请指点迷津啊!
[/Quote]

网络出现异常,客户端到服务器的连接可能早就断开了,服务器检测到客户端断开,自然就是将那连接断开.客户端如果不重新再连接,自然是不可能将任何数据成功发到服务器中去.
lin_style 2008-07-25
  • 打赏
  • 举报
回复
When the server host reboots after crashing, its TCP losee all information about connections that
existed before the crash.
Therefor,the server TCP respods to the received data segment from the client with an RST

so ,check the connection of the heartbeat function again~

18,357

社区成员

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

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