Перенаправить стандартный вывод процесса Linux на несколько входящих TCP-соединенийLinux

Ответить Пред. темаСлед. тема
Anonymous
 Перенаправить стандартный вывод процесса Linux на несколько входящих TCP-соединений

Сообщение Anonymous »

У меня есть рабочий процесс, который выдает выходные данные в канал stdout.
Теперь мне бы хотелось иметь службу, которая отображает стандартный вывод этого процесса на несколько входящих одноранговых TCP-соединений.
Другими словами, я хочу
  • перенаправить стандартный вывод процесса на TCP-порт «сервера» локальный компьютер
  • ... чтобы этот TCP-порт мог принимать несколько входящих TCP-соединений
  • ... и ретранслировать содержимое стандартного вывода на все из них входящие соединения
Канал stdin можно игнорировать.
Соответствующий вопрос: могу ли я добиться этого с помощью какой-либо существующей команды line, или мне нужно самому написать инструмент повторителя, например. с Python?

Я тестировал с использованием socat, и это может удовлетворить часть потребностей, но не полностью:
  • может перенаправлять стандартный вывод на TCP-порт и принимать входящие соединения от нескольких одноранговых хостов.
  • однако socat не отображает стандартный вывод< /code> передает данные всем соединениям полностью, но каждое соединение получает частичные стандартные данные, казалось бы, случайным образом.
Для справки: это вот как я тестировал с помощью socat:
Пример-пустышка oneliner bash, который служит для обновления эхо-записи N на порт 8080:

Код: Выделить всё

for i in {0..10000}; do echo "round ${i}"; sleep 1; done | socat - TCP-LISTEN:8080,fork,reuseaddr
При прослушивании этого примера фиктивного потока с двумя одноранговыми соединениями nc localhost 8080 оба узла получают часть потока stdout, но ни один из них не получает весь:
Соединение 1 получает:
Соединение 2 получает:
Ожидается, что оба соединения получат все записи «раунд 1, раунд 2, раунд 3…» и т. д.

Подробнее здесь: https://stackoverflow.com/questions/791 ... onnections
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Linux»