none
使用IOCP模型开发的客户端,同时手法数据出错 RRS feed

  • 问题

  • 前提:每次只投递一个Recv操作。使用单个线程收发数据不会出现数据接收错误的情况,使用多个就会。但是当用一个线程处理时,有时会出现客户端与服务端卡主不动的情况,程序并没有崩溃,就是停在那不动,排除死锁的可能。
    2015年5月14日 6:20

全部回复

  • 你说这种情况有时才会发生,所有首先你最好找出卡住不动的原因,看看有没有什么规律。建议用一些抓包工具看看能不能找到一些线索。希望这对你有些帮助。

    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2015年5月15日 1:58
  • 谢谢你的建议,问题找到了,是服务器中断了连接,10054(WSAGetLastError)。在CodeProject上有一个很著名的IOCP代码,我看了后,发现他的代码服务器和客户端都只开启了一个工作线程,当我在自己的项目中开启多个工作线程,常常出现内存释放的问题,pBuffer = CONTAINING_RECORD(...)就是这句,因为当有多个线程时,pBuffer在前一个还没做完,后一个就可能将其覆盖了,这确实是存在的,不知道怎么解决??
    2015年5月15日 7:11