Например, предположим, у меня есть этот код:
def dump():
tcpdump = subprocess.Popen("tcpdump -nli any",
stdin=subprocess.PIPE, stdout=subprocess.PIPE, shell=True)
outputfile = tcpdump.stdout
for line in outputfile:
print line,
Как я могу предоставить вывод такого в браузер?Поскольку нет точки остановки, я понятия не имею, где подключиться к циклу опроса.Более того, поскольку строка печати работает (я вижу строки, сброшенные на терминале), браузер не получает те же строки, см. Ниже:
class TCPDumpHandler(tornado.web.RequestHandler):
def get(self):
self.write("<form method='post' action='/log'><input type='submit'></form>")
@tornado.web.asynchronous
def post(self):
tcpdump = subprocess.Popen("tcpdump -nli any",
stdin=subprocess.PIPE, stdout=subprocess.PIPE, shell=True)
outputfile = tcpdump.stdout
for line in outputfile:
print line,
self.write(line)
self.finish()