IOCP运行一段时间后,AcceptEx不返回,该怎么处理

2025-05-24 09:06:38
推荐回答(1个)
回答(1):

IOCP服务端运行一段时间,客户端连不上了,但Telnet能成功,Connect能执行成功,发送数据失败,有点像是GetQueuedCompletionStatus没返回,但各个工作线程正常.AcceptEx投递时第四个参数有一个数据头大的数据。运行5-6个小时候会出现上述情况,请问题怎么回事,有什解决办法呀?

再加点日志看看,之前遇到过这种情况:
在Windows2003上完成AcceptEX投递后,直接返回错误,而错误处理逻辑中有个分支
没有再次投递足够的AcceptEx出去,导致客户端连不上。
根据listen的第二个参数,用telnet连接此属两个连接,如果超出数量后连接失败,则很有可能是AcceptEx没有被投递