【发布时间】:2022-01-02 20:08:57
【问题描述】:
看下面的例子
a = AsyncSniffer()
a.start()
a.stop()
a.stop() 会抛出异常。有没有办法在 start() 和 stop() 之间添加 time.sleep() 来解决这个问题?
- 这当然是一个人为的例子,但是如果我在 start() 和 stop() 之间创建一个测试存根,我们项目中的代码也会出现同样的问题
更新: 来自 pycharm 的 tracebak 运行:
FAILED [100%]
test_async_sniffer.py:3 (test_async_sniffer)
self = <scapy.sendrecv.AsyncSniffer object at 0x7f1d57a7f1f0>, join = True
def stop(self, join=True):
"""Stops AsyncSniffer if not in async mode"""
if self.running:
try:
> self.stop_cb()
E AttributeError: 'AsyncSniffer' object has no attribute 'stop_cb'
venv/lib/python3.8/site-packages/scapy/sendrecv.py:1017: AttributeError
During handling of the above exception, another exception occurred:
def test_async_sniffer():
a = AsyncSniffer()
a.start()
> a.stop()
test_async_sniffer.py:7:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <scapy.sendrecv.AsyncSniffer object at 0x7f1d57a7f1f0>, join = True
def stop(self, join=True):
"""Stops AsyncSniffer if not in async mode"""
if self.running:
try:
self.stop_cb()
except AttributeError:
> raise Scapy_Exception(
"Unsupported (offline or unsupported socket)"
)
E scapy.error.Scapy_Exception: Unsupported (offline or unsupported socket)
venv/lib/python3.8/site-packages/scapy/sendrecv.py:1019: Scapy_Exception
【问题讨论】:
标签: asynchronous scapy packet-sniffers sniffing sniffer