socat duplicate stdin для каждого подключенного клиента

ncat (из nmap folk) имеет аккуратное действие по умолчанию для дублирования любого ввода для всех подключенных клиентов. Например:

Запустите сервер на терминале 1:

% mkfifo messages % exec 8<>messages # hold the fifo open % ncat -l 5555 -k --send-only < messages 

Запуск клиентов, прослушивающих терминалы 2 и 3:

 % nc localhost 5555 

Выведите что-то на fifo на терминале 4 и наблюдайте, как одно сообщение появляется на всех подключенных клиентах (терминалы 2 и 3):

 % printf 'Hello, clients.\n' > messages 

Возможно ли такое совпадение с сотатом?

One Solution collect form web for “socat duplicate stdin для каждого подключенного клиента”

Я боюсь, что вы хотите сделать, это невозможно. Самое близкое, что вы можете получить, это:

На клемме 1:

 mkfifo messages socat PIPE:messages TCP4-LISTEN:5555,fork 

На клеммах 2 и 3:

 nc localhost 5555 

Затем текст, отправляемый на messages , иногда появляется на терминале 2, а иногда и на терминале 3. Это связано с тем, что socat будет «потреблять» текст в messages прежде чем сделать их доступными через сокет, открытый на localhost: 5555. Затем первый процесс netcat чтобы проснуться и прочитать из сокета, получит сообщения, а другой ничего не получит.

  • Требуется дальнейшее объяснение в TIME_WAIT
  • Перенаправить HTTP-порт по умолчанию в приложение
  • / dev / tcp не присутствует в Linux
  • Параметр ядра Linux «net.ipv4.tcp_workaround_signed_windows»
  • log PID каждой попытки подключения
  • Почему чтение / proc / net / tcp занимает много времени ss быстро возвращает те же данные о таблице соединений?
  • Как заставить TCP-пакеты использовать конкретную сетевую карту
  • Как я могу регистрировать исходящий трафик TCP, включая полный путь к URL-адресам?
  • Значение по умолчанию для опции SO_RCVTIMEO в Solaris
  • Linux медленное исходящее соединение
  • Поля tcp_probe
  • Linux и Unix - лучшая ОС в мире.