Python многопроцессный Scapy с очередью - PullRequest
0 голосов
/ 26 декабря 2018

Я хочу использовать многопроцессорность для работы со 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)

Я что-то пропускаю с функцией сниффа ??

...