Теперь мне бы хотелось иметь службу, которая отображает стандартный вывод этого процесса на несколько входящих одноранговых TCP-соединений.
Другими словами, я хочу
- перенаправить стандартный вывод процесса на TCP-порт «сервера» локальный компьютер
- ... чтобы этот TCP-порт мог принимать несколько входящих TCP-соединений
- ... и ретранслировать содержимое стандартного вывода на все из них входящие соединения
Соответствующий вопрос: могу ли я добиться этого с помощью какой-либо существующей команды line, или мне нужно самому написать инструмент повторителя, например. с Python?
Я тестировал с использованием socat, и это может удовлетворить часть потребностей, но не полностью:
- может перенаправлять стандартный вывод на TCP-порт и принимать входящие соединения от нескольких одноранговых хостов.
Код: Выделить всё
socat
- однако socat не отображает стандартный вывод< /code> передает данные всем соединениям полностью, но каждое соединение получает частичные стандартные данные, казалось бы, случайным образом.
Пример-пустышка oneliner bash, который служит для обновления эхо-записи N на порт 8080:
Код: Выделить всё
for i in {0..10000}; do echo "round ${i}"; sleep 1; done | socat - TCP-LISTEN:8080,fork,reuseaddr
Соединение 1 получает:
Код: Выделить всё
round 1
Код: Выделить всё
round 2
Код: Выделить всё
round 4
Код: Выделить всё
round 7
Код: Выделить всё
round 3
Код: Выделить всё
round 5
Код: Выделить всё
round 6
Код: Выделить всё
round 8
Подробнее здесь: https://stackoverflow.com/questions/791 ... onnections