如下面的代码:
while(1)
{
if((fp=fopen("dnsplug.log","a+"))==NULL)
{
printf("open file failed\n==========");
}
ret=pthread_create(&id,NULL,(void *)thread,NULL);
if(ret!=0)
{
printf("Create pthread error !\n");
exit(1);
}
pcap_loop (pd, 100, process_pkg, (u_char*)&conf);
system("mv dnsplug.log dnsplug.log.1");
//pcap_perror(pd,"pcap_loop");
pthread_join(id,NULL);
fclose(fp);
}
让pcap_loop抓100个包之后,然后系统调用修改日志文件,再之后执行fopen打开文件,依次循环,但是现在的问题是抓个100个包后就停了 不进行循环 ,哪位大侠能帮助解决一下,拜谢
如何让pcap_loop循环抓包?
答案:2 悬赏:50 手机版
解决时间 2021-03-21 03:19
- 提问者网友:欲劫无渡
- 2021-03-20 16:47
最佳答案
- 五星知识达人网友:三千妖杀
- 2021-03-20 17:10
pcap_loop (pd, 100, process_pkg, (u_char*)&conf);第二个参数100,决定了抓取100个包时就停止了。
如果是要持续抓包,则应使用-1参数。
如果是希望有一个等待时间,则应该使用pcap_ dispatch()函数,read_timeout是抓包的持续时间。
如果是要持续抓包,则应使用-1参数。
如果是希望有一个等待时间,则应该使用pcap_ dispatch()函数,read_timeout是抓包的持续时间。
全部回答
- 1楼网友:拜訪者
- 2021-03-20 17:44
查一下pcap_breakloop()
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯