连接断开后的及时响应问题。

gotooker 2008-05-04 01:33:42
请指教:

用tcp\ip做的通讯程序在用客服端连接服务器的过程中我用select设置超时,在超时的时间里我把服务器程序强行杀掉,如何使客户端立即返回??,如果用select的方法不可取,请问有没有其他的设置超时的方法可以达到这个目的
...全文
55 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
casit 2008-05-05
  • 打赏
  • 举报
回复
由于服务器端是被杀掉的,也就是说
C ------ SYN -----> S
KILL S
C <--- Nothing ---- S
C: Wait ACK
C: Wait ACK Timeout
C: connect return
那么在此之间,服务端不会给出任何数据包回复,所以理论上讲客户端是无法及时获知服务端的事件的,所以函数调用也就无法及时返回。

如果你能接受的话,可以用其他方法来变通解决。方式是,由于S被Kill,他所监听的端口就会变成Time_Wait状态。这个时候再次向该端口发送SYN包,会及时收到操作系统发出的RST包。不过这个方法也非常不理想,楼主好运
ljc_9449 2008-05-04
  • 打赏
  • 举报
回复
不知道,connect都要一定时间尝试吧,在超时时间内应该不会返回吧

18,356

社区成员

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

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