C ++ pcap_loop()参数问题

时间:2017-03-30 05:07:49

标签: c++ pcap

我试图将NULL传递给pcap_loop()函数,就像tcpdump man一样。

这是我想要触发的回调函数:

void Home::gotPacket(u_char *args, const struct pcap_pkthdr *header,
                const u_char *packet){

}

首先我尝试了这个:

pcap_loop(handle, 0, gotPacket, NULL);

其次我尝试传递一个带NULL值的变量:

u_char *arg = NULL;
pcap_loop(handle, 0, gotPacket, arg);

第一种和第二种方法都返回了这个错误:

error: invalid use of non-static member function
pcap_loop(handle, 0, gotPacket, NULL);
                                    ^

error: invalid use of non-static member function
pcap_loop(handle, 0, gotPacket, arg);
                                   ^

如何解决该错误?在此先感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我几乎可以肯定问题是Home::gotPacket不是static。请考虑将其更改为static

static void Home::gotPacket(u_char *args, const struct pcap_pkthdr *header,
                const u_char *packet){

}

这应该可以解决您的问题