解决 Ubuntu下面安装 apt-get install 一直卡在 0%[正在等待报头]

使用以下命令:

1.sudo rm -rf /var/lib/apt/lists/*  删除了该目录
2.sudo apt-get update

之后问题就解决了!

  • 20
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
在 Linux C 中,使用 UDP 接收报文时,可以通过 `recvfrom()` 函数获取到接收到的 UDP 报文。UDP 报文的报头保存在接收缓冲区的开头位置,可以通过指定接收缓冲区的起始地址和长度参数来获取。 具体来说,可以按照以下步骤获取 UDP 报文的报头: 1. 定义一个 `struct udphdr` 结构体变量,用于保存 UDP 报文的报头信息。这个结构体在 Linux 系统中有定义,可以通过引入 `<netinet/udp.h>` 头文件来获取。 2. 调用 `recvfrom()` 函数接收 UDP 报文,将接收到的数据存储到一个指定大小的接收缓冲区中。 3. 在接收缓冲区的起始地址处,即 `buffer` 指针所指向的位置,就是 UDP 报文的报头信息所在的位置。此时可以将 `buffer` 强制转换为 `struct udphdr` 类型指针,以便能够访问 UDP 报文的报头信息。 下面是一个简单的示例代码,演示如何获取 UDP 报文的报头信息: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/socket.h> #include <netinet/in.h> #include <netinet/ip.h> #include <netinet/udp.h> #define BUFFER_SIZE 4096 int main() { int sock_fd; struct sockaddr_in server_addr, client_addr; socklen_t client_addr_len = sizeof(client_addr); char buffer[BUFFER_SIZE]; struct udphdr *udp_header; // 创建 UDP 套接字 if ((sock_fd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) { perror("socket error"); exit(EXIT_FAILURE); } // 绑定本地地址和端口号 memset(&server_addr, 0, sizeof(server_addr)); server_addr.sin_family = AF_INET; server_addr.sin_addr.s_addr = htonl(INADDR_ANY); server_addr.sin_port = htons(8888); if (bind(sock_fd, (struct sockaddr *)&server_addr, sizeof(server_addr)) == -1) { perror("bind error"); exit(EXIT_FAILURE); } // 接收 UDP 报文 if (recvfrom(sock_fd, buffer, BUFFER_SIZE, 0, (struct sockaddr *)&client_addr, &client_addr_len) == -1) { perror("recvfrom error"); exit(EXIT_FAILURE); } // 获取 UDP 报文的报头 udp_header = (struct udphdr *)buffer; // 打印 UDP 报文的报头信息 printf("UDP header:\n"); printf("source port: %u\n", ntohs(udp_header->source)); printf("destination port: %u\n", ntohs(udp_header->dest)); printf("length: %u\n", ntohs(udp_header->len)); printf("checksum: 0x%x\n", ntohs(udp_header->check)); // 关闭套接字 close(sock_fd); return 0; } ``` 在上面的代码中,我们首先创建一个 UDP 套接字并绑定到本地地址和端口号。然后调用 `recvfrom()` 函数接收 UDP 报文,并将报头信息保存到 `udp_header` 变量中。最后打印 UDP 报文的报头信息,包括源端口号、目的端口号、长度和校验和等。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rookie小强

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值