Проблема в чтении из сокета
У меня есть программа потокового воспроизведения, которая читает данные из сокета, который я создал:
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
,