CAsyncSocket::ReceiveFrom 是 MFC(Microsoft Foundation Classes)中 CAsyncSocket 类的一个公共方法,用于从指定地址接收数据。这个方法的原型如下:
int ReceiveFrom(void* lpBuf, int nBufLen, SOCKADDR* lpSockAddr, int* lpSockAddrLen, int nFlags = 0);

该方法的参数解释如下:

  •  lpBuf:指向接收数据缓冲区的指针。

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

  •  lpSockAddr:指向 SOCKADDR 结构的指针,用于接收发送端地址信息。

  •  lpSockAddrLen:指向一个整数变量的指针,用于指定 lpSockAddr 缓冲区的大小,同时也在接收时保存实际的地址信息长度。

  •  nFlags:接收标志,可以是 MSG_PEEK 或其他套接字标志。


该方法返回接收到的字节数,如果发生错误则返回 SOCKET_ERROR。

示例代码如下:
// 假设 pAsyncSocket 是 CAsyncSocket 对象的指针
BYTE buffer[1024];
SOCKADDR addr;
int addrLen = sizeof(addr);

int nBytesReceived = pAsyncSocket->ReceiveFrom(buffer, sizeof(buffer), &addr, &addrLen);

if (nBytesReceived != SOCKET_ERROR) {
    // 处理接收到的数据
    // ...
} else {
    int nError = pAsyncSocket->GetLastError();
    // 处理错误
    // ...
}

这个方法主要用于 UDP 套接字,用于从指定地址接收数据。


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