Often the question arises if it is possible with Socat to transfer data from one socket (or any data source) to many receivers (or any data sinks). The answer is: not, but... Socats transfer engine has been designed to just ship data between two endpoints (between two file descriptors or pairs of file descriptors). It is neccessary to use an external mechanism. 1) tee: tee is a Unix/Linux utility that reads data and passes it to two or more receivers. Example: socat -u UDP-RECV:5120 - |tee >(socat - UDP-SENDTO:host1:5120) >(socat - UDP-SENDTO:host2:5120) >>/tmp/udp5120.trace Disadvantages: Fixed structure, receivers cannot be added later Only unidirectional transfer is possible 2) Network broadcast: (Mis)use UDP broadcast feature on an interface. It is recommended to use the loopback interface to not leak the data to the network. Unidirectional: // data source socat -u - UDP-SENDTO:127.255.255.255:5120,so-broadcast // data sinks - add many socat -u UDP-RECV:5120,so-reuseaddr,so-reuseport,so-bindtodevice=lo - Disadvantages: Receivers must be root to bind to loopback and prevent injected data arriving on other interfaces Bidirectional: