我用SOCKET的本地端口与远程端口连接,我用CLOSE不能彻底关掉,只能让它是TIMEWAITE,我还想用这个端口与远程端口连怎么办???

解决方案 »

  1.   

    可以使用close()关闭一个打开的socket套接字
    不过
    你作为一个客户端连接服务器可以使用临时的端口号啊,没有必要指定??建议看看<unix网络编程>
    看完会清楚一些
    MFC不过是封装一下而已
      

  2.   

    closesocket
    或者在之前用一下
    shutdown
      

  3.   

    Close类成员函数,或者是closesocket函数,都应该能关掉SOCKET呀,我用过好多次了。不需要先shutdown ,一下子就关掉了。
      

  4.   

    reuseaddr选项设一下,
    或者在linger选项里面设定一下TIMEWAIT时间为0
    也能立即关闭不过这样做没人建议
      

  5.   

    我用了CLOSESOCKET但是用netstat查看总是有TIMEWAIT,SOCKET是关掉了,可它占用的端口号就释放不掉了,只能再用另一个新端口了。我想让原来那个端口释放出来,怎么做呢。
    原来我分用完了,现在有分了,问题解决了我会给分的:)
      

  6.   

    你的程序代码肯定有问题了,看不到源码,问题就不好说了。
    从理论上讲,closesocket函数肯定能释放端口的,只要你的代码写得对。
      

  7.   

    CSocket a;
    a.Create(111,SOCK_STREAM,NULL);
    a.Connect("192.168.50.25",21);
    char buf[1024];
    a.Receive(buf,1024);
    a.Close();这样就不能释放端口,什么地方有问题呢?
      

  8.   

    在linger选项里面设定一下TIMEWAIT时间为0
    顺便问一下,TIMEWAIT时间设置为0是怎么做的,能给出代码吗?谢谢