ncat (from the nmap folk) has a neat default action of duplicating any input to all connected clients. E.g.:
Start a server on terminal 1:
% mkfifo messages
% exec 8<>messages # hold the fifo open
% ncat -l 5555 -k --send-only < messages
Start clients listening on terminals 2 & 3:
% nc localhost 5555
Output something to the fifo on terminal 4 and watch the same message appear on all connected clients (terminals 2 & 3):
% printf 'Hello, clients.\n' > messages
Is this same pattern possible with socat?
Update: screenshot of Philippe's solution:
