IOCP中,重用Socket,DisconnectEx阻塞了100多秒,该如何处理

IOCP中,重用Socket,DisconnectEx阻塞了100多秒
在重用Socket关闭t时

     shutdown(Socket,FD_CLOSE);
     DisconnectEx(Socket,null,TF_REUSE_SOCKET,0);
  
    有时候 Shutdown执行完毕,执行DisconnectEx被阻塞了,要等100多秒才返回,请问是怎么回事呀?重用Socket时,这两个函数应该怎么用?

------解决方案--------------------
DisconnectEx重叠参数传NULL肯定要阻塞的,用在iocp中就不应该这么用,应该将完成动作定向到完成端口
------解决方案--------------------
根据tcp状态机,主动关闭连接的一方会进入TIME_WAIT状态,这个状态会持续2MSL的时间,大约为1-4分钟,和机器设置有关。100多秒是个很正常的值
------解决方案--------------------
引用:
根据tcp状态机,主动关闭连接的一方会进入TIME_WAIT状态,这个状态会持续2MSL的时间,大约为1-4分钟,和机器设置有关。100多秒是个很正常的值

这个问题我碰到过,确实会出现阻塞100秒或更多。
如果不是必须,可以考虑直接关闭socket。