closesocket关闭的问题
猫儿累了 2014-04-02 02:18:26 我想把完成端口里投递的IO(如WSARecv)请求全部取消掉,也就是让他们从GetQueuedCompletionStatus中返回。
所以我就直接用closesocket,然后套接字关闭并释放资源。问题就来了。
A线程closesocket释放套接字后(假设该套接字值为222),关闭之后我再在这个套接字的任何操作都是失败返回的了。那么假如正好其他线程刚好在我关闭222这个套接字后马上调用socket函数创建到222这个值的新套接字,那么我A线程肯定出错了。
想问的是,closesocket释放套接字后,该套接字的值会不会马上因为空闲了而被新的套接字用上。
有没有办法让我继续占有这个套接字的句柄(222),但是我又能关闭它的连接并使投递到完成端口的IO操作全部返回?