CAsyncSocket 类的 ReceiveFrom 方法用于从指定的地址接收数据。以下是 CAsyncSocket::ReceiveFrom 方法的基本语法和说明:
int ReceiveFrom(void* lpBuf, int nBufLen, SOCKADDR* lpSockAddr, int* lpSockAddrLen, int nFlags = 0);

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

  •  nBufLen:指定缓冲区的大小。

  •  lpSockAddr:指向 SOCKADDR 结构的指针,用于存储发送数据的地址信息。

  •  lpSockAddrLen:指向整数的指针,用于指定 lpSockAddr 缓冲区的大小,并在调用后返回实际写入的地址信息的长度。

  •  nFlags:指定接收操作的标志,默认为 0。


返回值:
  •  如果成功接收数据,返回接收到的字节数;如果发生错误,返回 SOCKET_ERROR。


示例用法:
CAsyncSocket mySocket;
// 假设已经创建并绑定了 mySocket

char buffer[1024];
SOCKADDR_IN senderAddr;
int senderAddrLen = sizeof(senderAddr);

int nBytesReceived = mySocket.ReceiveFrom(buffer, sizeof(buffer), (SOCKADDR*)&senderAddr, &senderAddrLen);

if (nBytesReceived != SOCKET_ERROR)
{
    // 成功接收数据,可以处理接收到的数据和发送数据的地址信息
}
else
{
    // 接收数据失败,处理错误
}

在上述示例中,ReceiveFrom 方法用于从指定的地址接收数据,并将数据存储在提供的缓冲区中。同时,它还会返回发送数据的地址信息。


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