在MFC(Microsoft Foundation Classes)的CAsyncSocket类中,Receive方法用于从套接字接收数据。这个方法通常在客户端或服务器端用于接收数据。

以下是CAsyncSocket类中Receive方法的原型:
int Receive(void* lpBuf, int nBufLen, int nFlags = 0);

参数说明:
  •  lpBuf:一个指向接收数据缓冲区的指针。

  •  nBufLen:接收数据缓冲区的大小。

  •  nFlags:(可选)一个整数,用于指定接收数据的标志。默认为0。


返回值:
  •  返回实际接收到的字节数。如果返回值为0,表示连接已关闭。

  •  如果发生错误,则返回SOCKET_ERROR。可以通过调用GetLastError()获取错误代码。


使用示例:
CAsyncSocket mySocket;

// 在创建套接字并进行一些初始化操作后

char buffer[1024];
int nBytesReceived;

// 接收数据
nBytesReceived = mySocket.Receive(buffer, sizeof(buffer));

if (nBytesReceived > 0)
{
    // 成功接收数据,可以在 buffer 中找到接收到的内容
}
else if (nBytesReceived == 0)
{
    // 连接已关闭
    // 处理连接关闭的情况
}
else
{
    // 接收数据失败,处理错误
    int nError = mySocket.GetLastError();
    // 处理错误代码
}

在这个示例中,Receive方法被调用,从mySocket对象关联的套接字中接收数据,存储到buffer中。接收到的字节数由nBytesReceived返回。如果返回的字节数大于0,表示成功接收数据。如果返回的字节数为0,表示连接已关闭。如果返回SOCKET_ERROR,则表示发生错误。需要根据返回值进行适当的处理。


转载请注明出处:http://www.zyzy.cn/article/detail/15543/MFC/CAsyncSocket