G
GGCAT
Unregistered / Unconfirmed
GUEST, unregistred user!
开了两个IOport,把进入服务器的连接分别关联到两个不同的完成端口去。
当存在大量并发连接并持续交互的情况下(大于5000个连接以上),如果瞬间关闭全部client ,那么完成端口将可能会收到错误的数据,情况有
1)关联到端口B的完成事件出现在了端口A的队列中。
2)单个IO请求失败(read dwNumber返回0)会连续收到多次。
3)IO失败会附加错误的pOverlapped数据(非发起请求的Overlapped数据)。
4)返回一个不存在的 CompletionKey
如果只开一个ioport,只是不会出现1的情况,2,3,4一样出
这些都可能导致服务器处理释放资源的错误。大家不妨一试。
当存在大量并发连接并持续交互的情况下(大于5000个连接以上),如果瞬间关闭全部client ,那么完成端口将可能会收到错误的数据,情况有
1)关联到端口B的完成事件出现在了端口A的队列中。
2)单个IO请求失败(read dwNumber返回0)会连续收到多次。
3)IO失败会附加错误的pOverlapped数据(非发起请求的Overlapped数据)。
4)返回一个不存在的 CompletionKey
如果只开一个ioport,只是不会出现1的情况,2,3,4一样出
这些都可能导致服务器处理释放资源的错误。大家不妨一试。