CAsyncSocket 类的 SendTo 方法用于向指定的目标地址发送数据,通常用于 UDP 套接字。该方法的原型如下:
int SendTo(const void* lpBuf, int nBufLen, UINT nHostPort, LPCTSTR lpszHostAddress = NULL, int nFlags = 0);

该方法的参数解释如下:

  •  lpBuf:指向包含要发送数据的缓冲区的指针。

  •  nBufLen:指定要发送的数据的字节数。

  •  nHostPort:目标主机的端口号。

  •  lpszHostAddress:目标主机的 IP 地址(字符串格式),如果为 NULL,则表示使用先前通过 Connect 方法设置的目标地址。

  •  nFlags:发送标志,可以是 0 或其他套接字标志。


该方法返回实际发送的字节数,如果发生错误则返回 SOCKET_ERROR。

以下是一个简单的示例:
// 假设 pAsyncSocket 是 CAsyncSocket 对象的指针
const char* message = "Hello, Server!";
int messageLen = strlen(message);

// 发送数据到指定的目标地址和端口
int nBytesSent = pAsyncSocket->SendTo(message, messageLen, 12345, _T("127.0.0.1"));

if (nBytesSent != SOCKET_ERROR) {
    // 数据成功发送
    // ...
} else {
    int nError = pAsyncSocket->GetLastError();
    // 处理错误
    // ...
}

请注意,使用 SendTo 方法时,不需要先通过 Connect 方法建立连接,因为 UDP 是无连接的协议。如果您使用 TCP 套接字,可以考虑使用 Send 方法。




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