IOCP问题总结(recv阻塞/死锁/线程堆栈溢出)

//群发,异常时不关闭socket,(关闭会出现异常(死锁?!),而不关闭最多客户端少收一些数据而已),再者,这里在关闭,而SocketArray_->GetActiveItem(i)又在获取。。。
//会发生类似这样的死锁:AcceptThread的RecvData要进入锁,但OnRecvComplete却阻塞在recv处,为什么会阻塞在这里?可能是CloseSocket是,破坏了某些数据,如重叠
//结构等socket需要的结构数据。后来发现是因为SocketArray_中的数据引起?!明天再看看。为了方便定位问题,先将RSThread改成单线程,经过一系列VS/windbg调试总结
//如下:
//1.****** 单线程,群发除自己以外的其它客户端,而后立刻关闭被发消息的客户端,发现阻塞在recv处,究其原因:关闭其socket之前一瞬间,此客户端发送一条消息,
//******** 此消息放入了服务器队IO列中,随后此客户端其重叠资源和ActiveItem也释放,若此时正好有一客户端连接进来,被分配和刚才被释放socket同样的句柄,并且
//
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值