Linux C++UDP列子
时间: 2023-10-19 10:23:36 浏览: 42
以下是一个简单的 Linux C++ UDP 编程示例:
```cpp
#include <iostream>
#include <cstring>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <unistd.h>
#define PORT 8080
int main()
{
int sockfd;
char buffer[1024] = {0};
const char *hello = "Hello from client";
struct sockaddr_in servaddr;
// 创建 socket 文件描述符
if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
{
std::cerr << "Socket creation error" << std::endl;
return -1;
}
memset(&servaddr, 0, sizeof(servaddr));
// 配置服务器地址
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(PORT);
servaddr.sin_addr.s_addr = INADDR_ANY;
int n, len;
// 发送数据到服务器
sendto(sockfd, hello, strlen(hello), MSG_CONFIRM, (const struct sockaddr *)&servaddr, sizeof(servaddr));
std::cout << "Hello message sent." << std::endl;
// 接收来自服务器的回复
n = recvfrom(sockfd, (char *)buffer, 1024, MSG_WAITALL, (struct sockaddr *)&servaddr, (socklen_t *)&len);
buffer[n] = '\0';
std::cout << "Server : " << buffer << std::endl;
close(sockfd);
return 0;
}
```
此示例创建了一个 UDP socket,向服务器发送 "Hello from client" 消息,并等待服务器回复。在接收到回复后,将回复打印到控制台上。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)