可不可以在异步的WSASend() 返回后就释放呀?

解决方案 »

  1.   

    WSASend( pS->socket, &(pbuf->DataBuf), 1, &sent, flag, ( LPWSAOVERLAPPED )pbuf, NULL );
    调用WSASEND时,传进去一个OVERLAPPED结构,那个结构里面包含缓存地址.就像上面这句里面的,
    pbuf,和 pbuf->DataBuf.
    GetQueuedCompletionStatus( hCP, &BytesTransferred, ( LPDWORD )&pPerSocket,
    ( LPOVERLAPPED * )&pPerData, INFINITE );
    返回一个OVERLAPPED结构,就是你传进去的, 当GetQueuedCompletionStatus()返回时,你就可以
    回收内存了.
      

  2.   

    可不可以在异步的WSASend() 返回后就释放呀?
    _____
    不可以.