所以我想从tcpdump
获取所有数据,并在将来添加一些逻辑。
我对子进程的管道还没有这样的问题。
我编写代码并并行运行tcpdump
和{
在运行.py公司名称:
from subprocess import Popen, PIPE
# process = Popen(['/usr/bin/sudo', '/usr/sbin/tcpdump', '-i', 'wlan0'], bufsize=1, stdout=PIPE, stderr=PIPE)
process = Popen('sudo tcpdump -i wlan0', bufsize=1, universal_newlines=True, shell=True, stdout=PIPE, stderr=PIPE)
while True:
print(process.stdout.readline())
尝试:sudo stdbuf-oL tcpdump-i wlan0
对我有用
它是tcpdump过程中的标准缓冲。
默认情况下,stdio将重定向流上的缓冲模式设置为\u IOFBF(full)。
幸运的是,tcpdump有
-l
选项,它将模式切换为line buffered:Andrea的解决方案也有效,但我的解决方案也适用于windows。在
相关问题 更多 >
编程相关推荐