Я пытаюсь вывести вывод скрипта 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?