寻求:CLOSE_WAIT状态的原因及解决方法使用了WINSOCK2的API进行socket编程,我的程序进程第一次能连上,我主动closesocket后再进行连接连不上了,用procexp看TCP/IP状态为CLOSE_WAIT状态,关掉进程后,再重新启动一个进程却能连接上。
为什么啊????
HELP ME...

解决方案 »

  1.   

    http://haka.sharera.com/blog/BlogTopic/32309.htm
    到这里看看吧……我反正看得头晕了……
      

  2.   

    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