gpt4 book ai didi

c - 使用 libpcap 同时监听两个设备

转载 作者:太空狗 更新时间:2023-10-29 15:06:29 25 4
gpt4 key购买 nike

我正在尝试使用 libpcap 在两台设备上收听,但我仍然不知道如何操作。我试图将设备设置为“任何”,但它不起作用。我正在尝试编写 dhcp 中继代理,所以我需要监听 eth0 和 eth1。

我尝试创建两个 pcap_loop,每个都有不同的设备和处理程序,但只有第一个 pcap_loop 有效,第二个被忽略。

有什么方法可以做到这一点,还是我应该离开 libpcap 并尝试使用原始套接字来做到这一点?

最佳答案

您需要在单独的线程中运行您的 pcap_loop(),每个接口(interface)一个,我们这样做了,并且它有效。

libpcap 的某些部分至少不是线程安全的 pcap_setfilter(),因此请提供您自己的锁定。

如果您不想使用线程,则必须自己提供一个事件循环,您可以在其中使用 select/poll 或类似工具监视每个设备的文件描述符。您可以使用 pcap_get_selectable_fd() 获取设备句柄的文件描述符。

关于c - 使用 libpcap 同时监听两个设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4297865/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com