解决方案 »

  1.   

    这跟你发送多少数据没有关系。一次issue,肯定就会产生一个完成包(就是从getqueue函数返回真)。你肯定两次调用了WSARecv函数,这就是两次 issue,就会从getqueue函数得到两个完成包。
      

  2.   

    只不过第二次issue,返回的完成包transfer是0,是peer完美关闭的信号而已。
      

  3.   

    有个问题,如果在工作线程中没使用WSASend()函数,仅使用了WSARecv()函数,那么运行结果就是正常的,GetQueue也只返回一次。但是使用WSASend和WSARecv,如代码中所示,就是会出现GetQueue返回两次的问题。是不是WSASend对完成端口有影响,WSASend也通过完成端口发送数据
      

  4.   


    一次发射,就会导致一次完成。
    这就是法律。有好几个函数都可以发射,WSASend也可以发射。我上面那是法律,不错,就算你用cancelioex取消,都取消不了。只要有发射,就会有完成。cancelioex取消操作后,还是有完成包,只不过完成包是取消的状态。
      

  5.   

    http://blog.csdn.net/marcelxx/article/details/16336197