嗨我有一个程序,我在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)
这是配置,我用我的回调函数调用dispatch函数。print语句用于调试
while True:
print "dispatch is called"
return_value=self.pcap.dispatch(packet_limit, self.distribute_packet)
print "return value"
print return_value
所以我在2台不同网络的主机上运行这个系统。这些是freebsd 9.0发布的
其中一个系统工作正常,它真实地编写了我的调试;
dispatch is called
return vaue
34,45,55 whatever it is
但另一个系统是;
dispatch is called
什么也没有。所以它挂起了派遣功能。它没有返回任何东西并挂断。两个系统是相同的,但它们在不同的网络上。我试图改变pcap.openlive的超时。但是这没关系。
它为什么挂断?