win IOCP一个点closesocket之后的操作,如何避免重复回收资源问题

win使用iocp中使用 closesocket 之后

 

if (s->m_Socket != INVALID_SOCKET)closesocket(s->m_Socket); s->m_Socket = INVALID_SOCKET;

 

以上操作确实可以关闭,但是这个操作会同时再触发一次iocp的投递操作,会重新投递一个任务到工作队列中

 

在实际开发中,可以在一次流程中,执行close操作,然后再工作队列中回收前端程序为当前socket分配的资源

 如果是先回收资源再closesocket注意资源的重复回收问题

 

20220310

 

//

 

posted @ 2022-03-10 14:12  小城熊儿  阅读(127)  评论(0编辑  收藏  举报