开始时,某个套接字被关联到完成端口上,后来这个套接字失效(如非法连接,被服务器断掉),这时候是否要对这个套接字取消关联?
如果要取消,应该怎么取消?
如果不取消有什么后果?多谢各位兄弟

解决方案 »

  1.   

    不用取消, 直接把你的Key删掉就可以了, 然后
    shutdown(sock, SD_BOTH);
    closesocket(sock);
    sock = INVALID_SOCKET;iocp会自动返回断线(前提是这个客户端有请求在Pending中)
    否则就不会有响应,这就要自己做心跳了
      

  2.   

    关掉套接字就可以了,因为 iocp是一个被动的东西,
      

  3.   

    套接字就是系统资源,不释放就相当new 不对应delete
      

  4.   

    调用closesocket(),完成端口就会返回OVERLAPPED结构的了,这时你就回收资源就是了!!!