IOCP 下行为投递的关键点

网络库中把iocp当做epoll来用,发送、接收都投递0字节。(实际的投递写事件,是投递的1字节数据; 投递0字节会立即返回,根本没检测是否可写)

最近压测时,发现大量连接下,若连接频繁断开,有些标记值会错误,这几天着手解决这个问题, 很诡异, 特记录。


假设A、B为iocp的工作线程。

C为逻辑线程。

若C线程中的一个socket链接要发送数据:
    正确的做法是调用PostQueuedCompletionStatus函数投递;
    会出问题的的做法是用WSASend投递(会引起诡异问题,我遇到的貌似是GetQueuedCompletionStatus返回了2次)。

转载于:https://www.cnblogs.com/lcinx/p/10570765.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值