1

嗨,我有一个程序,我在其中使用 python 中的 pcap 捕获数据包。

filter=some_filter 
promiscuous= True
read_timeout= 50 # msec
self.pcap= pcapy.open_live(self.ifname, self.conf.capture_snaplen, promiscuous, read_timeout)
self.pcap.setfilter(filter)

这是配置,我用我的回调调用调度函数。打印语句用于调试

while True:
            print "dispatch is called"
            return_value=self.pcap.dispatch(packet_limit, self.distribute_packet)
            print "return value"
            print return_value

所以我在 2 台不同网络的主机上运行这个系统。Oses 是 freebsd 9.0 版本

其中一个系统运行良好,它真实地编写了我的调试;

dispatch is called
return vaue
34,45,55 whatever it is

但另一个系统是;

dispatch is called

没事了。所以它挂断了调度功能。它不返回任何内容并挂断。两个系统相同,但它们位于不同的网络上。我试图更改 pcap.openlive 的超时。但这无关紧要。为什么会挂机?

4

0 回答 0