我真的是没办法了,,靠,,
在大量客户连接后,大量的收发数据,
然后客户端断开,这时候很多在完成端口里正在PENDING的IO操作不返回。。
因为我的同一个连接可能同时有WSARecv或者WSASend都在完成端口里PENDING,涉及到引用计数,只有引用计数为0的时候才回收这个连接的资源。。。。如果采取超时检测来关闭也一样达不到这个目的,即使我认为这个SOCKET超时了,主动对这个SOCKET进行closesocket,但是在这之前调用成功后正在完成端口里PENDING的WSARecv或者WSASend还是不会返回。。。。这样引用计数没有机会减掉,还是无法回收这个连接的资源,,,真是郁闷死了。。。
今天采用CancelIo发现也没作用,,,因为CancelIo只能取消由本线程发出的IO操作,,
FUCK!!!