我用winsock的TCP方式和一个Server通讯,通讯结束后,我用closesocket关闭连接
,返回值是0,按说应该是正确关闭连接了,可我在控制台用netstat -p TCP 命令检查网络连接,发现连接还在!不知是怎么回事,麻烦各位高手解释一下?
netstat -p TCP的结果是:
TCP aaa 192.168.33.2:2233 TIME_WAIT注:我用的是winsock 1.1 API没用MFC的类~

解决方案 »

  1.   

    closesocket只是关闭socket句柄,真正的socket关闭还要等待到双方的SYN_CLOSE都收到后。
    如果网络延迟(ping)太高的话,可能会持续几十秒钟,这个是正常的
      

  2.   

    我也遇到这样的情况,关闭套接字以后,tcp 连接仍然存在
      

  3.   

    TCP正常连接终止所对应的状态
       客户端           服务端
               FIN M
    主动关闭FIN_WAIT_T------CLOSE_WAIT(被动关闭)
            ACK M+1 
    FIN_WAIT_2----------
           FIN N 
    TIME_WAIT----------- 
           ACK N+1
         -----------CLOSEDTIME_WAIT状态大约需要4分钟,因此你的情况是正常的
      

  4.   

    shutdown()也是如此,延时行不行!