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 

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

  • Является ли это ядро ​​предупреждением о серьезной проблеме, которая нуждается в моем внимании?
  • Различные алгоритмы управления перегрузками в FreeBSD
  • Захват данных с Fluke 1620a с помощью дескриптора файла Bash / dev / tcp
  • Используйте OpenVPN на TCP 443, не вмешиваясь в мой веб-сервер
  • Используя tc, я хочу, чтобы TCP и UDP использовали один и тот же буфер
  • Как захватить сетевые трассы, содержащие только определенную строку?
  • на каком уровне сетевого стека tcpdump получает информацию?
  • Сколько одновременных клиентских соединений SSH возможно с одного компьютера на разные серверы
  • 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 чтобы проснуться и прочитать из сокета, получит сообщения, а другой ничего не получит.

    Linux и Unix - лучшая ОС в мире.