Winpcap:暂停/停止嗅探pcap_breakloop功能不起作用
Winpcap: pcap_breakloop function to pause/stop sniffing won't work
因此,对于我在大学的最后一年项目/论文,我正在使用C++和pcap编写数据包嗅探器。目前该程序可以嗅探数据包,但是我正在尝试对其进行编码,以便在按下转义键时,嗅探将停止。这是有问题的一段代码:
while ((result = pcap_loop(adhandle, 0, packet_handler, NULL)) == 0) {
if (result == 0)
continue;
if (GetAsyncKeyState(VK_ESCAPE))
{
result = -2;
}
if (result == -2)
{
pcap_breakloop(adhandle);
}
}
按下 esc 键时,没有任何反应,嗅探将继续,直到程序关闭。任何关于为什么这不起作用的帮助将不胜感激!
来自 pcap_loop
的文档:
pcap_loop(( 处理来自实时捕获或"保存文件"的数据包,直到处理 CNT 数据包,从"保存文件"读取时到达"保存文件"的末尾,调用pcap_breakloop((或发生错误。发生实时读取超时时,它不会返回。cnt 的值为 -1 或 0 等效于无穷大,因此将处理数据包,直到出现另一个结束条件。
由于要pcap_loop
的第二个参数是 0,因此它将无限期地处理数据包,并且除非发生错误,否则不会到达 while 循环体。
相关文章:
- 在 cmake 中使用 Pcap++ 库
- 使用 pcap 捕获双 VLAN 流量
- 从libtins获取可读的PCAP转储
- C/C++ 中的高效 pcap 解析器
- 如何使用 pcap.h c++ 按 ip 过滤
- 从C 中录制的PCAP文件中读取纳秒分辨率
- 用于 ARP 回复数据包的 c/c++ pcap 过滤器表达式
- 致命错误 C1083:无法打开包含文件:'pcap.h'
- 如何使用Visual C ++从wireshark读取pcap文件
- 将PCAP文件解析至C 中的sip消息
- 如何使用C/C++提取pcap文件的TCP标头中的选项字段
- 使用 pcap 库打开 TCP 转储文件
- 获取 PCAP 文件中数据包的 IP 地址
- 如何在 C++ 中读取 PCAP 文件以获取数据包信息
- 在 C++ 中读取 PCAP 文件
- 用pcap捕获跟不上?
- 将 pcap 文件读取到向量/数组
- 使用libpcap,是否有一种方法可以确定从脱机pcap文件捕获的数据包的文件偏移量
- 使用pcap开发便携式网络分析仪应用程序
- 是否可以检查接口是否在 pcap 中激活