本帖最后由 wangxuqing 于 2010-04-12 21:57:33 编辑

解决方案 »

  1.   

    int nTotalBytes = BytesTransferred;
    while(TRUE)
    {
     int nRet = (WSARecv(PerHandleData->Socket, 
                &(PerIoData->DataBuf), 1, &RecvBytes, &Flags,
                &(PerIoData->Overlapped), NULL);
     if(SOCKET_ERROR != nRet)
    {
    nTotalBytes -= nRet;
    if(nTotalBytes <=0)
     break;
    }
    else
    {
     //出错处理
    }
    }
      

  2.   

    我在一个客户端往这里发数据,好比总数据量有170000字节,我的while循环只recv一次,那个异步recv是在前面发出的,在recv接收后面的数据时出的这个错误