发现客户端偶尔会出现类似死机的状态,信息通道完全堵死,只有手工干预(启动)才能再连接。这会不会就是所谓的IDL状态。
解决方案 »
- 怎样将CString sUserName的值传给一个字符串type,想要switch(type)这样编写一个程序,谢谢!
- WSAWaitForMultipleEvents有事件为什么却得不到响应呢?
- 怎样使我在中文系统下开发的程序在繁体操作系统下显示繁体?
- 请大哥们帮忙,我想要电子版<<mfc深入浅出>>简体中文版.
- VC/VC.NET中如何显示svg、或ai格式的矢量图?
- OpenH.323支持视频(摄像头)捕捉吗?怎样用?
- 请问:为何数据库打不开呢?
- 请高手们看一下我的代码问题在哪里?
- 传送文件的问题~~~!在线等~~~~!
- 有工作经验的能帮帮忙吗?
- 什么情况下在服务器程序退出后,客户端程序的recv没有任何响应?
- 关于类和自己的对象。
服务端close你还维持什么通信信道 直接close打法得了
你客户端要是在此状态下 一直不close就是你自己的问题咯
比方一个男的已经软了 自认为做完了 就起身走人并且说“下次见” 女的听了无动于衷 保持着ml的姿势很长时间 你说能怪这男的吗?
如果实在找不到你这边在CLOSE_WAIT后为什么没调closesocket也不知道那一端啥时候close了 你可以让自己这边的socket定时检查状态 如果发现谁CLOSE_WAIT状态维持了太长时间 基本就可以认定它僵在那里了 那就一个closesocket送它上路
客户端不是我编的,无法修改。我想知道的是客户端的状态,客户端有时会僵在那里,必须重启才行,IP又是通的。这种“僵状态”是否一定是CLOSE_WAIT,或还有其他情况也会导致僵在那里。
4楼说的检测close_wait状态并且用closesocket送它上路,出现close_wait的状态不是closesocket能控制的
2.现实上来讲你永远无法防止对方不出现close_wait,除非你设置linger强制关闭。因为你的FIN,ACK总有可能发不到对端,所以TCP为了保证不让自己陷入发送->应答,等待应答的应答,这种逻辑死循环,close4次握手的最后两次,发出去就不管了,只是等待自己状态改变而已。
我遇到一种现象,本地是服务端,远方是客户端,正常时远方客户端会不断地与服务端联系,即使暂时中断也会很快地恢复连接。但远方客户端偶尔会出现一种近乎死机的close_wait,僵在那里,无法发起与服务端连接,只能重启。期间,远方客户端并无人工干预。