Socket瞬断时间设置,100分

lzzqqq 2005-12-06 02:37:55
前一段时间给人家做了个类似QQ的聊天软件.其中涉及到一个客户端与服务端的断开连接问题(TCP连接),一个是程序主动断开连接属于正常断开,一个是意外断开连接(如网线断开,交换机掉电,网络故障等),我实际测试了一下如果将网线拔掉然后迅速再插上,这时间客户端和服务端的Socket连接并不断开,好象收不到断开事件.但如果将网线拔掉的时间长一些,就可以收到断开事件.不知道这个断开的判断是以多长时间为依据,是否能人为地设置它的大小?(我想设置得时间长一些为断开)
...全文
243 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lzzqqq 2005-12-08
  • 打赏
  • 举报
回复
谢谢楼上的兄弟!
freemme 2005-12-07
  • 打赏
  • 举报
回复
在win2000以上版本可以针对每个socket用setsockopt设置SO_KEEPALIVE的时间间隔
hjunxu 2005-12-07
  • 打赏
  • 举报
回复
可以自己做实验,抓包看看。
lzzqqq 2005-12-07
  • 打赏
  • 举报
回复
有没有类似的代码粘出来看看啊?
hjunxu 2005-12-06
  • 打赏
  • 举报
回复
超时重传时间间隔为1.5,3,6,12,24,48,和多个64,大约9分钟。
但一般操作系统设的好像是2分左右。
hjunxu 2005-12-06
  • 打赏
  • 举报
回复
据tcp/ip详解说的,如果设了保活,那么每隔75秒发一个保活包,发10次。为750秒,6分半的样子,不过各个操作系统地实现会不同。
hjunxu 2005-12-06
  • 打赏
  • 举报
回复
tcp本来就有超时机制,也会有重发机制。

网线被拔的情况还真没有做过这样的实验。

18,356

社区成员

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

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