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