以下是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.pingtaimeng.com/article/detail/15543/MFC/CAsyncSocket