- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在使用 libpcap 编写嗅探器。我的问题是在调用 pcap_loop() 或 pcap_next() 和实际获取数据包(调用回调函数)之间有 7-10 秒的延迟。但是,如果我在同一台设备上使用带有相同过滤器的 wireshark,则在我点击“开始”按钮后就不会出现这种延迟。为什么我的程序有延迟,有没有办法解决这个问题?
我正在研究 atheros wifi 芯片。使用
将设备设置为监控模式airmon-ng start wlan0
我确信有很多流量可以监听,因为我可以在 wireshark 中看到这些包。谢谢。
最佳答案
I'm using 10000
pcap_open_live()
和 pcap_set_timeout()
的 to_ms 参数以毫秒为单位。
10000 毫秒是 10 秒。
尝试使用 1000,这是 tcpdump 使用的值 - 这会将延迟减少到 1 秒 - 或者使用 100,这是 Wireshark 使用的值 - 这会将延迟减少到 1/10 秒。
I read on a tutorial about this field: " on at least some platforms, this means that you may wait until a sufficient number of packets arrive before seeing any packets, so you should use a non-zero timeout"
有问题的教程是the tcpdump.org "How to use libpcap" tutorial ,并且有问题的段落已添加到此 CVS 提交中:
revision 1.8
date: 2005/08/27 23:58:39; author: guy; state: Exp; lines: +34 -31
Use a non-zero timeout in pcap_open_live(), so you don't wait for a
bufferful of packets before any are processed.
Correctly explain the difference between pcap_loop() and
pcap_dispatch().
In sniffex.c, don't print the payload if there isn't any.
所以我对它很熟悉。 :-)
我不得不花一些时间(再次)查看 Linux 内核代码,以了解超时值为 0 会对较新的内核产生什么影响。但是,在编写使用 libpcap/WinPcap 进行实时捕获的代码时,您应该始终表现得好像您正在为此类平台编写代码;如果零超时的行为发生变化,您的代码将更易于移植到其他平台并且不会中断。
关于c - 为什么 pcap_loop() 和获取数据包之间有很长的延迟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29875110/
这个问题在这里已经有了答案: Isn't an Int64 equal to a long in C#? (2 个答案) 关闭 9 年前。 它不应该是一个整数类型吗? 这样,一些使用 int 的函数
当我遇到一些我想知道的事情时,我正忙着解析一个二进制文件。 Stream.Position属性的类型为Int64或long。为什么是这样?因为流中的位置不能为负,所以使用 UInt64 不是更有意义吗
所以第一部分是我从用户那里获得输入,在本例中,输入是“1”作为从另一个函数接收的字符值。 printf ("\nPlease enter 1, 2, 3 or q: "); option =
我正在尝试使用以下代码从 REST 服务返回 JSON: $categories = $categoriesController->listAll(); if($categories){ hea
我阅读了文档,它说 long 是 %li,但打印输出返回为 -2147024891。是什么赋予了? 最佳答案 您甚至没有提供要打印的号码,但我猜您已经无意中发现了签名打印和未签名打印之间的区别。 使用
我正在创建自定义购物车,我正在构建一个查询,该查询从检索我刚刚保存到购物车表中的 session_id 开始。我知道这个值被保存了,我在 mysql 命令行运行这个查询,它返回我需要的但我没有将值放入
我有一个包含 textView 的 scrollView。如果文本很长并且不适合屏幕,我想增加 textView 高度(我想我可以通过添加 NSLayoutConstraint outlet 并修改它
我有一个基本的数据库处理程序类,其中有一个使用 PDO::FETCH_ASSOC 参数返回结果集的公共(public)方法: public function resultSet() { $th
在后台线程中,我调用 PublishSubject.onNext(); 并在主线程中通过 subscribe(PublishSubject.filter(message -> message.getI
我想知道为什么 Amazon Web Services 控制台登录页面有这么长的 url?为什么不只发布数据而不显示其中包含大量数据的冗长 url。以这种方式实现有什么充分的理由吗? 最佳答案 我认为
这个问题在这里已经有了答案: Can I mix MySQL APIs in PHP? (4 个答案) 关闭 6 年前。 希望我犯了一个快速而明显的错误,我浏览了 previous question
我得到了答案:如果我禁用了cookie,那么使用URL重定向我可以传递JSESSIONID,但我的URL已经很长,因为我使用它有约束的GET方法。那怎么办我应该使用我的 session 吗?我希望我的
目前,当我使用 DOMDocument 对象并调用 saveHTML() 时,它会自动添加一些我不需要的 html 标签。我尝试了此处建议的解决方案 ( https://stackoverflow.c
我是一名优秀的程序员,十分优秀!