Python 实例不会消亡
我有3台设备。设备A与设备C通信。设备B嗅探连接。我的代码工作正常,但我不明白为什么Python 实例不会消亡,python,Python,我有3台设备。设备A与设备C通信。设备B嗅探连接。我的代码工作正常,但我不明白为什么解码器对象在线程退出后(即控件为真时)仍在嗅探连接 Decoder类对设备A和C之间的数据包进行解码,并且没有任何循环机制(当它作为单个脚本运行时,它运行一次,然后退出) 下面是代码的简化版本(在设备B上运行),问题在于: class Thread_Class(Flag): def run(self): while(control == False): self.p
解码器
对象在线程退出后(即控件
为真时
)仍在嗅探连接
Decoder类对设备A和C之间的数据包进行解码,并且没有任何循环机制(当它作为单个脚本运行时,它运行一次,然后退出)
下面是代码的简化版本(在设备B上运行),问题在于:
class Thread_Class(Flag):
def run(self):
while(control == False):
self.parent.object.loop(0, self.handle_packets)
def handle_packets(self, ...):
# packet handling code using pcapy library
packet = ...
self.parent.decoder = Decoder(self)
self.parent.decoder.decode(packet)
好的,我解决了。。。我在最后两行周围放置了一个
if control==False
什么是self.parent.object.loop()
?它不是循环吗?@NPE它只是一个接收数据包的pcapy函数。问题不在这里。如果我对上面代码的最后两行进行注释,线程将退出。您确实没有显示足够的代码来调试它。对self.parent.object.loop
的单个调用是否会重复调用处理\u数据包?在哪里以及如何将控件设置为非False?Decoder.decode
到底做什么?它能阻挡吗?