我是python的新手,我正在测试pyshark库。
我想时时刻刻闻一下交通状况,然后做点别的事情。但当我启动嗅探器时,所有其他代码都停止工作。我尝试过异步线程和多线程,但总是出现不同的错误。
这就是我想在不阻塞应用程序的情况下运行的代码。
import pyshark
import asyncio
class Sniffer:
@staticmethod
@asyncio.coroutine
def sniff():
cap = pyshark.LiveCapture(interface='en0')
cap.sniff_continuously(packet_count=0)
for pkt in cap:
print(pkt)谢谢你的建议。
发布于 2020-06-01 15:38:31
您可以尝试使用多线程类。https://docs.python.org/3/library/threading.html
例如:
import thread
obj = Sniffer()
thread.start_new_thread( obj.sniff,)另一种方法,如果你厌倦了多线程或其他人,创建新的python文件并导入你的嗅探器。
例如:
# new python file
import sniffer
obj = sniffer.Sniffer()
while True:
obj.sniff()这样就可以使用你的处理器核心。这就像多线程一样,差别很小,你的操作系统会让它自动工作。
https://stackoverflow.com/questions/62127499
复制相似问题