udp发送结构体数据
时间: 2023-07-21 21:16:45 浏览: 92
Socket UDP 发送结构体数据
4星 · 用户满意度95%
在使用UDP协议发送结构体数据时,需要将结构体转换为字符数组,然后通过sendto()函数发送数据。具体步骤如下:
1. 定义结构体
```c
typedef struct {
int id;
char name[20];
float score;
} Student;
```
2. 创建结构体实例并赋值
```c
Student stu;
stu.id = 1001;
strcpy(stu.name, "张三");
stu.score = 89.5;
```
3. 将结构体转换为字符数组
```c
char buffer[sizeof(Student)];
memcpy(buffer, &stu, sizeof(Student));
```
4. 发送数据
```c
int sockfd = socket(AF_INET, SOCK_DGRAM, 0);
struct sockaddr_in addr;
addr.sin_family = AF_INET;
addr.sin_port = htons(8080);
inet_pton(AF_INET, "127.0.0.1", &addr.sin_addr);
sendto(sockfd, buffer, sizeof(buffer), 0, (struct sockaddr*)&addr, sizeof(addr));
```
注意事项:
1. 在转换结构体时,需要使用memcpy()函数,而不是直接将结构体强制转换为字符数组;
2. 发送数据时,需要指定目标地址和端口号。
阅读全文