Проблема в чтении из сокета

У меня есть программа потокового воспроизведения, которая читает данные из сокета, который я создал:

nc -lk 9999

Программа считывает данные из сокета и исключает сообщения "Ошибка". Когда я пишу вручную в сокет, он работает нормально.
Я создал скрипт Python, который часто печатает сообщения об ошибках. Я сохраню результат в файле, используя:

stdbuf -oL python my_script.py &>> my_file.txt

и прочитайте файл из сокета:

nc -lk 9999 | tail -f my_file.txt

Все в порядке, сокет будет считывать данные из файла, пока файл обновляется в фоновом режиме, но проблема в том, что моя программа-искра не перехватывает сообщения "Ошибка".
В итоге: когда я пишу вручную сообщения об ошибках в сокете, их перехватывает искра, но это не захватывает сообщение об ошибке, генерируемое скриптом python из сокета.
На самом деле программа не работает, если я читаю файл из сокета, а не набираю его.
В чем разница?

1 ответ

Решение

Команда, которую вы ввели

nc -lk 9999 | tail -f my_file.txt

означает: взять вывод netcat и труба это tail -f my_file.txt, Но tail не принимает никаких данных, просто просматривает файл my_file.txt, Пытаться

tail -f my_file.txt | nc -lk 9999

вместо этого, чтобы вывод tail подается к nc,

Другие вопросы по тегам