winpcap抓包如何停止?

xijia_130 2007-04-10 03:06:44
我用winpcap抓包,程序开始后,开启动了一个线程,
void thread()
{
....
...
pcap_loop(adhandle, 0, packet_handler, NULL);
return 1;
}

线程的最后调用了回调函数 packet_handler。
现在如果我不想抓包了,是不是只有强制性将该线程 杀掉??有别的办法么?
...全文
713 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
evileagle 2008-06-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xlb_115 的回复:]
同问:pcap_breakloop()应该是放在pcap_handler()函数中吧?因为到这pcap_loop()就一直循环在这了

那adhandle应该怎么传进去啊?
pcap_handler()的三个参数u_char *user, const struct pcap_pkthdr *pkt_header, const u_char *pkt_data中没有句柄啊
[/Quote]
用全局变量传啊,你也可以在另外一个线程里把他break掉,没必要一定要在pcap_handler()里
xlb_115 2008-06-26
  • 打赏
  • 举报
回复
同问:pcap_breakloop()应该是放在pcap_handler()函数中吧?因为到这pcap_loop()就一直循环在这了

那adhandle应该怎么传进去啊?
pcap_handler()的三个参数u_char *user, const struct pcap_pkthdr *pkt_header, const u_char *pkt_data中没有句柄啊
ironox 2007-04-15
  • 打赏
  • 举报
回复
定义一个 bool变量

在线程里

检测这个变量的变化,比如它变成FALSE,你就终止线程。

在程序其它的地方,比如一个按钮,在相应按钮消息的时候改变这个bool变量。
mimong_lin 2007-04-10
  • 打赏
  • 举报
回复
不用啊,有个pcap_breakloop,调用它,就可以从pcap_loop中退出来了。

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧