套接字s 与完成端口hCompletion关联后,投递了多个重叠的IO操作(WSAResv WSASend), 此时关闭套接字s ,那些未使用的IO操作会怎么返回? GetQueuedCompletionStatus会不会得到值?

解决方案 »

  1.   

    会返回,GetQueuedCompletionStatus返回错误值
      

  2.   

    会返回,GetQueuedCompletionStatus返回错误值
      

  3.   

    套接字s   与完成端口hCompletion关联后,投递了多个重叠的IO操作(WSAResv WSASend),   此时关闭套接字s ,那些未使用的IO操作会怎么返回? GetQueuedCompletionStatus会不会得到值?
    ==========================
    会返回:
    1.在大部分情况下GetQueuedCompletionStatus的返回值为False;
    2.还有有会返回True,而操作数据的长度为0;
    3.也有特例情况返回True,并且操作数据的长度不为零,也就是跟正常的操作完成相类似,此类情况实际上是操作的完成之后才被关闭。通常这种情况只能是由下一次提交请求失败而结束连接。
      

  4.   

    关闭socket句柄后,所有在该socket上已投递的未决操作,都会返回。
    可以理解为你关闭socket时,在之前投递了几个未决操作,GetQueuedCompletionStatus就会返回几次。