小编Joh*_*ith的帖子

Pcap Dropping Packets

// Open the ethernet adapter
handle = pcap_open_live("eth0", 65356, 1, 0, errbuf);

// Make sure it opens correctly
if(handle == NULL)
{
    printf("Couldn't open device : %s\n", errbuf);
    exit(1);
}

// Compile filter
if(pcap_compile(handle, &bpf, "udp", 0, PCAP_NETMASK_UNKNOWN))
{
    printf("pcap_compile(): %s\n", pcap_geterr(handle));
    exit(1);
}

// Set Filter
if(pcap_setfilter(handle, &bpf) < 0)
{
    printf("pcap_setfilter(): %s\n", pcap_geterr(handle));
    exit(1);
}

// Set signals
signal(SIGINT, bailout);
signal(SIGTERM, bailout);
signal(SIGQUIT, bailout);

// Setup callback to process the packet
pcap_loop(handle, -1, process_packet, NULL);
Run Code Online (Sandbox Code Playgroud)

process_packet函数摆脱了标题并对数据进行了一些处理.然而,当它花了太长时间,我认为它正在丢弃数据包.

我如何使用pcap监听udp数据包,并能够在不丢失数据包的情况下对数据进行一些处理?

networking udp packet pcap libpcap

5
推荐指数
1
解决办法
4266
查看次数

标签 统计

libpcap ×1

networking ×1

packet ×1

pcap ×1

udp ×1