CLOSE_WAIT状态的原因及解决方法

pass86 2008-06-30 02:44:54
寻求:CLOSE_WAIT状态的原因及解决方法

使用了WINSOCK2的API进行socket编程,我的程序进程第一次能连上,我主动closesocket后再进行连接连不上了,用procexp看TCP/IP状态为CLOSE_WAIT状态,关掉进程后,再重新启动一个进程却能连接上。


为什么啊????
HELP ME...

...全文
752 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
pass86 2008-07-06
  • 打赏
  • 举报
回复
解决了,原来是我的客户端没有写好。。。。
comanche 2008-07-01
  • 打赏
  • 举报
回复
CLOSE_WAIT 是一个过路状态, 体现为,
1 另一方关闭了 SOCKET, 你还没关闭(closesocket)
2 你关闭(closesocket)了 SOCKET, 但还没通知到对方(FIN 还没发出)

你的情况比较特别, 属于 2
原生的 socket 不会有这个问题, 引起了所有 i/o (recv/send) 返回 0
但 WinSock 提供了 n 种 i/o 方法,在 i/o 发生中不能 closesocket, 只有当 i/o 完成时才真正执行了, 所以你不要查 closesocket 的问题, 查在哪个 i/o 那里发呆了


-----------------------------------------------------------------------------------------------------------------------------
www.sourceforge.net/projects/uvc
uvc is a socket1.1 compatible delphi/kylix component
support multiple threading module, request/fdset/socket per thread, 10k tcp connection on request per thread model, and socks
gyk120 2008-06-30
  • 打赏
  • 举报
回复
http://haka.sharera.com/blog/BlogTopic/32309.htm
到这里看看吧……我反正看得头晕了……
pass86 2008-06-30
  • 打赏
  • 举报
回复
沉底了。55555

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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