我想使用多进程处理船尾。一个进程将数据放入队列,另一个进程从队列中获取数据。
以下代码:
from multiprocessing import Process, Queue
from scapy.all import *
nic = 'ens160'
def producer(q):
sniff(iface=nic, prn=lambda p : q.put(p), store=0)
if __name__ == '__main__':
queue = Queue()
pro = Process(target=producer, args=(queue,))
pro.start()
while True:
print('queue size: {}'.format(queue.qsize()))
time.sleep(3)
结果是队列大小始终为0。
即使我在嗅探中添加了额外的fun1,队列大小仍然为0。 但是在fun1中,队列大小不断增加
queue = Queue()
def fun1(p):
queue.put(p)
print('Queue size is {}'.format(queue.size()))
sniff(iface=nic, prn=fun1, store=0)
我想念带有嗅探功能的东西吗?