写一个C++ udp通讯小程序
时间: 2023-04-05 15:02:54 浏览: 109
用C++编写UDP通信程序
4星 · 用户满意度95%
好的,我可以回答这个问题。以下是一个简单的 C 语言 UDP 通讯小程序的示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#define PORT 8888
#define MAXLINE 1024
int main() {
int sockfd;
char buffer[MAXLINE];
struct sockaddr_in servaddr, cliaddr;
// 创建 UDP 套接字
sockfd = socket(AF_INET, SOCK_DGRAM, 0);
// 初始化服务器地址结构体
memset(&servaddr, 0, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
servaddr.sin_port = htons(PORT);
// 绑定服务器地址
bind(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr));
printf("Server listening on port %d...\n", PORT);
while (1) {
socklen_t len = sizeof(cliaddr);
// 接收客户端数据
int n = recvfrom(sockfd, buffer, MAXLINE, 0, (struct sockaddr *)&cliaddr, &len);
buffer[n] = '\0';
printf("Received from %s:%d: %s\n", inet_ntoa(cliaddr.sin_addr), ntohs(cliaddr.sin_port), buffer);
// 发送响应数据给客户端
sendto(sockfd, buffer, n, 0, (struct sockaddr *)&cliaddr, sizeof(cliaddr));
}
return 0;
}
```
这个程序创建了一个 UDP 套接字,绑定了一个端口,然后进入一个循环,不断接收客户端发送的数据,并将数据原样发送回去。你可以根据自己的需求修改这个程序。
阅读全文