本帖最后由 VisualEleven 于 2010-09-17 08:55:49 编辑

解决方案 »

  1.   

    WSAIoctl()这个函数只需调用一次,加载扩展函数AcceptEx。当你接收到连接后调用closesocket(OverlapPlus->sclient);连接就会断开的应该要监听套接字上再投递接收连接请求,并在接收到的套接字(OverlapPlus->sclient)上投递几个读请求
      

  2.   

    你客户端关闭套接字以后,你的服务器检查到客户端已经断开,当然也要关闭SOCKET,释放其它的资源了。你的服务器端仍然可以继续投递AcceptEx监听,等待客户端connect来连接
      

  3.   

    Client断开-Server监听到后则释放和此Client相关的资源
      

  4.   

    这里我只讨论socket的问题,别的资源自然要回收。
    每次调用socket()系统内核都会消耗一定的资源申请套接字,这是个耗功的操作。
    这里我以前看过一些资料上面有个说法:
    将原本需要closesocket()的套接字sock_A存下来,这这时SOCK_A是处于CLOSE_WAIT状态,也就是等待程序关闭的状态。这时可以调用AcceptEx()函数来指定sock_A为新连接的套接字,这样就可以免去申请socket的消耗。(这个方法我暂时没测试过,在此等待楼主的测试结果哈哈)