bidilink is a general purpose Unix tool for linking two bidirectional data streams together. It extends the standard Unix "filter" paradigma to bidrectional streams.
socat is a relay for bidirectional data transfer between two independent data channels. Each of these data channels may be a file, pipe, serial device, pseudo terminal, a socket, an SSL socket, proxy CONNECT connection, a file descriptor, readline, a program, or a combination of these.Read more