🍗 Wiki

Socat

Socat

Socat, short of SOcket CAT, is a multi-purpose relay program. It establishes two bidirectional connections and transfers data between them.

1. Build

Visit http://www.dest-unreach.org/socat/, and download the recent version of socket. Then unpack the .tar.gz file.

$ cd ~/Downloads
$ $ tar -xvzf socat-1.8.0.3.tar.gz
socat-1.8.0.3/
socat-1.8.0.3/xio-rawip.c
socat-1.8.0.3/proxy.sh
socat-1.8.0.3/filan_main.c
socat-1.8.0.3/dalan.h
socat-1.8.0.3/xio-termios.h
...

Enter the socat-<version> directory. And run ./configure command.

$ ./configure
checking which defines needed for makedepend...
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
...

If there were no error, run make command to build the socat.

$ make
gcc -O -D_GNU_SOURCE -Wall -Wno-parentheses  -DHAVE_CONFIG_H -I.  -I.   -c -o socat.o socat.c
gcc -O -D_GNU_SOURCE -Wall -Wno-parentheses  -DHAVE_CONFIG_H -I.  -I.   -c -o xioinitialize.o xioinitialize.c
gcc -O -D_GNU_SOURCE -Wall -Wno-parentheses  -DHAVE_CONFIG_H -I.  -I.   -c -o xiohelp.o xiohelp.c
gcc -O -D_GNU_SOURCE -Wall -Wno-parentheses  -DHAVE_CONFIG_H -I.  -I.   -c -o xioparam.o xioparam.c
gcc -O -D_GNU_SOURCE -Wall -Wno-parentheses  -DHAVE_CONFIG_H -I.  -I.   -c -o xiodiag.o xiodiag.c
gcc -O -D_GNU_SOURCE -Wall -Wno-parentheses  -DHAVE_CONFIG_H -I.  -I.   -c -o xioopen.o xioopen.c
gcc -O -D_GNU_SOURCE -Wall -Wno-parentheses  -DHAVE_CONFIG_H -I.  -I.   -c -o xioopts.o xioopts.c
...
$ file socat
socat: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=2dcdd0102ba0b5dd664b1dbf49ccf22c3510802e, for GNU/Linux 3.2.0, not stripped