c语言udp传输协议如何发送结构体
时间: 2023-01-29 10:59:16 浏览: 384
在 C 语言中使用 UDP 协议来发送结构体需要按照以下步骤进行:
1. 定义结构体变量并赋值。
2. 使用 socket() 函数创建一个套接字。
3. 使用 sendto() 函数向特定的地址发送数据。
下面是一个简单的示例代码:
```
#include <stdio.h>
#include <string.h>
#include <sys/socket.h>
#include <netinet/in.h>
struct packet {
int seq_num;
char data[1024];
};
int main(int argc, char *argv[]) {
int sockfd;
struct sockaddr_in servaddr;
// 创建套接字
sockfd = socket(AF_INET, SOCK_DGRAM, 0);
// 填充服务器的地址信息
memset(&servaddr, 0, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(12345); // 端口
inet_pton(AF_INET, "127.0.0.1", &servaddr.sin_addr);
// 定义结构体变量并赋值
struct packet pkt;
pkt.seq_num = 123;
strcpy(pkt.data, "Hello, World!");
// 发送数据
sendto(sockfd, &pkt, sizeof(pkt), 0, (struct sockaddr*)&servaddr, sizeof(servaddr));
return 0;
}
```
在上述代码中,我们首先定义了一个 packet 类型的结构体,然后创建了一个套接字,并填充了服务器的地址信息。接着,我们定义了一个 packet 类型的变量 pkt,并为其赋值。最后,使用 sendto() 函数向服务器发送了 pkt 变量的内容。
阅读全文