Я хочу использовать многопроцессорность для работы со Scapy.Один процесс помещает данные в очередь, а другой получает данные из очереди.
Следующий код:
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)
Я что-то пропускаю с функцией сниффа ??