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