【发布时间】:2015-07-08 23:40:51
【问题描述】:
我目前正在使用 libpcap 在混杂模式下嗅探流量
int main()
{
// some stuff
printf("Opening device: %s\n", devname.c_str());
handle = pcap_open_live(devname.c_str(), 65536 , 1 , 0 , errbuf);
if (handle == NULL)
{
fprintf(stderr, "Couldn't open device %s : %s..." , devname.c_str(), errbuf);
return 1;
}
printf(" Done\n");
pcap_loop(handle , -1 , process_packet , NULL);
// here run a thread to do some stuff. however, pcap_loop is blocking
return 0;
}
我想添加一个外部线程来做一些其他的事情。如何更改上面的代码以使其成为非阻塞?
【问题讨论】:
-
在调用 pcap_loop 之前启动线程?
-
我可以试试,但是如果我想在 pcap_loop 之后做一些其他的事情呢?
标签: c++ linux multithreading libpcap packet-sniffers