c++实现UDP通信
时间: 2024-04-02 17:28:22 浏览: 74
c++实现udp通信源码.txt
C++可以通过使用套接字(Socket)来实现UDP通信。下面是一个简单的C++代码示例,演示了如何使用UDP套接字进行通信:
```cpp
#include <iostream>
#include <string>
#include <cstring>
#include <arpa/inet.h>
#include <sys/socket.h>
int main() {
// 创建UDP套接字
int sockfd = socket(AF_INET, SOCK_DGRAM, 0);
if (sockfd == -1) {
std::cerr << "Failed to create socket" << std::endl;
return -1;
}
// 设置服务器地址和端口
struct sockaddr_in serverAddr{};
serverAddr.sin_family = AF_INET;
serverAddr.sin_port = htons(12345); // 设置端口号
serverAddr.sin_addr.s_addr = inet_addr("127.0.0.1"); // 设置IP地址
// 发送数据
std::string message = "Hello, UDP Server!";
if (sendto(sockfd, message.c_str(), message.size(), 0, (struct sockaddr*)&serverAddr, sizeof(serverAddr)) == -1) {
std::cerr << "Failed to send data" << std::endl;
close(sockfd);
return -1;
}
// 接收数据
char buffer[1024];
memset(buffer, 0, sizeof(buffer));
socklen_t serverAddrLen = sizeof(serverAddr);
if (recvfrom(sockfd, buffer, sizeof(buffer), 0, (struct sockaddr*)&serverAddr, &serverAddrLen) == -1) {
std::cerr << "Failed to receive data" << std::endl;
close(sockfd);
return -1;
}
// 输出接收到的数据
std::cout << "Received data: " << buffer << std::endl;
// 关闭套接字
close(sockfd);
return 0;
}
```
上述代码中,首先创建了一个UDP套接字,然后设置服务器的地址和端口。接下来,使用`sendto`函数发送数据到服务器,并使用`recvfrom`函数接收服务器返回的数据。最后,关闭套接字。
注意:上述代码只是一个简单的示例,实际应用中可能需要进行错误处理、超时处理等。
阅读全文