Socat is an open source and POSIX compliant command-line software implemented in C and designed from the offset to act as a bidirectional data transfer relay between two autonomous data channels.
At the moment, it supports pipe, file, device (modem or terminal), SSL, socket (IPv4, IPv6, UNIX, UDP, TCP), proxy CONNECT, or a client for SOCKS4. Socat is capable of supporting multicasts and broadcasts, Linux tap/tun, abstract Unix sockets, PTYs and GNU readline.
In addition, the software provides logging, dumping and forking of different modes that can be used for interprocess communication, or you can use it as a TCP or IPv6/IPv4 relay, a shell interface to UNIX sockets, a daemon-based socksifier, as well as a tool for redirecting TCP-oriented software to a serial line.
Socat offers a wide range of command-line options that can be viewed at a glance by running the ‘./socat -h’ command in a terminal emulator. Among these, we can mention the ability to analyze the file descriptors before the loop, to set a timeout before closing the second channel, to set the total inactivity timeout in seconds, as well as to specify the unidirectional mode.
There are also various command-line options that allow you to obtain lock, fail or wait, choose between IPv4 or IPv6, to disable checking of option groups, as well as to set several logging specifications. The usage message will also teach you how to use single-address, bi-addresses and address-head.
Getting started with Socat
Installing Socat on a GNU/Linux distributions proves to be an easy task, as all you have to do is to run the ‘./configure && make’ install command in a terminal emulator to configure and compile the program, followed by the ‘sudo make install’ command, after downloading the latest stable or development version of the program from Softpedia.