网络库中把iocp当做epoll来用,发送、接收都投递0字节。(实际的投递写事件,是投递的1字节数据; 投递0字节会立即返回,根本没检测是否可写)
最近压测时,发现大量连接下,若连接频繁断开,有些标记值会错误,这几天着手解决这个问题, 很诡异, 特记录。假设A、B为iocp的工作线程。C为逻辑线程。若C线程中的一个socket链接要发送数据: 正确的做法是调用PostQueuedCompletionStatus函数投递; 会出问题的的做法是用WSASend投递(会引起诡异问题,我遇到的貌似是GetQueuedCompletionStatus返回了2次)。