2

来自这里的代码片段:

void packet_handler(u_char *param, const struct pcap_pkthdr *header, const u_char *pkt_data) 
{ 
    .... 
    /* retireve the position of the ip header */ 
    ih = (ip_header *) (pkt_data + 
        14); //length of ethernet header 
    .... 

什么是const struct pcap_pkthdr *header定义),我们什么时候需要它,它是如何填充的(因为数据包本身没有如下信息)?

替代文字
(来源:www.dcs.gla.ac.uk 的 lewis

4

1 回答 1

3

如果您保留评论,那会容易一些。它说:

/* Callback function invoked by libpcap for every incoming packet */

这里它说typedef void(*) pcap_handler(u_char *user, const struct pcap_pkthdr *pkt_header, const u_char *pkt_data)

pkt_header是捕获驱动程序与数据包关联的标头。它不是协议头。

于 2010-05-09T08:53:53.123 回答