Передача вывода Python в NetCat - time.sleep () прерывает вывод? - PullRequest
1 голос
/ 16 мая 2019

Я пытаюсь вывести вывод скрипта python в netcat, используя WSL на windows.В одном терминале у меня есть моя программа на python и netcat, настроенные в режиме прослушивателя.В другом терминале я подключаюсь к этому слушателю и ожидаю увидеть мой вывод на python.Приведенный ниже код работает, и я могу сделать это успешно, но при добавлении time.sleep (1) между вызовами функций я не получаю никакого вывода Python.Почему это так?

Я попытался использовать функцию print () вместо sys.stdout.write ().Я пробовал разные конфигурации nc.

Сценарий производителя Python:

import time
from sys import stdout

def generate_stream_data():
    stdout.write('some text\n')

if __name__ == '__main__':
    iterations = 10000
    while iterations > 0:
        generate_stream_data()
        time.sleep(1)  # this causes nothing to get piped to nc

Передача вывода Python в WSL:

python above_code.py | nc -lk localhost 9999

В другом терминале WSL:

nc -v localhost 9999

Комментирование time.sleep(1) позволяет мне увидеть мой вывод во втором терминале.Я протестировал отдельную программу на Python, и она успешно выводит «some_ text» на консоль с задержкой в ​​1 секунду.Почему при добавлении этого я ничего не вижу в netcat?

...