# Network pipes

## 0. Contents

This is the documentation of pipes-1.16.1.

## 1. Purpose

Nov 24 1999, Bisqwit spoke:

    I just noticed that netpipes doesn't support bidirectional pipes.
    So I made my own version.
    Now I can say in computer A that "plis 12345 -io ohjelma" and in computer B that "pcon A 12345 -io ohjelma2",
    and they communicate together then.
    My example utilization was that I can send the picture of SNES-emulator to another
    computer via network, and grab the keyboard input there, so get two consoles to
    the same game.
    My friend wanted to watch when I play FF6, but didn't want to sit next to my monitor,
    and asked if he could get the picture to his monitor.
    And he got it.
    Then he asked if he could play it from his computer at the same time as me...
    And now it works too.
    Other ways of use can everybody invent theirselves.
    It's really easy to make simple server software with this.
    For example, do "plis 79 -io finger" and then you have a finger-service.
    Or "plis 5555 -o 'cat signature'" and then port 5555 gives your signature.

## 2. Examples

    Examples:

       Make a finger service:

          plis 79 -ioe in.fingerd

          (socket connected to in.fingerd's stdin, stdout and stderr.)

       Make a server giving your signature at port 5555:

          plis 5555 -o 'cat signature' </dev/null 2>/dev/null

          (stdout connected to socket,
           stdin & stderr redirected to /dev/null)

       Make a test client for tcp connections
       (recommended instead of using telnet):

          pcon -f localhost 11111 -i cat -o cat

          (two cats: first redirects socket to stdout,
           and second redirects stdin to socket.)

       Make a linebuffered test client for tcp connections:

          pcon www.icon.fi 80 -i cat -o cat

       Make an echo server:

          plis 11111 -io cat

          (the cat redirects socket to socket.)

       Make a redirection server (this redirects all
       incoming connections in port 1234 to remotehost
       port 4123 (useful for proxying)):

          plis 1234 -io 'pcon remotehost 4123 -i cat -o cat'

          (the first cat is from pcon to plis,
           and the second is from plis to pcon.)

       Connect to an irc server and assign a bot to talk with
       it (stdin, stdout), errors logged:

          pcon ircserver.org 6667 -io './irc-bot' 2>errors.log

       Redirect world (10.10.10.10) smtp (25) port to virus checker (192.0.0.2),
       redirect intra (192.0.0.1)   smtp (25) port to some other port (900):

          plis -h10.10.10.10 25 -io 'pcon 192.0.0.2 25 -i cat -o cat' 2>/dev/null &
          plis -h192.0.0.1 25 -io 'pcon 127.0.0.1 900 -i cat -o cat' 2>/dev/null &

## 3. Copying

pipes has been written by Joel Yliluoma, a.k.a. Bisqwit,
and is distributed under the terms of the General Public License (GPL).

If you happen to see this program useful for you, I'd appreciate if you tell me :) Perhaps it would motivate me to enhance the program.

## 4. Downloading

The official home page of pipes is at http://iki.fi/bisqwit/source/pipes.html.
Check there for new versions.

Generated from `progdesc.php` (last updated: Sat, 25 Jan 2003 16:52:48 +0200)
with `docmaker.php` (last updated: Sun, 12 Jun 2005 06:08:02 +0300)
at Sun, 11 Sep 2005 16:16:23 +0300