Named pipes differ from the *nix variants. There are pipe servers and clients, half/full duplex pipes. In half duplex, both side can be used, provided the server can be opened before the client.
On Windows, pipe names are specified as: \\.\pipe\<your pipe name here>
If you use 2 instances of protocoltool connected in half duplex back to back, only one side can be used: either transmit or receive but not both (2 half duplex sides).
For test/demonstration purpose, pipe files are included in the tarball.
This file must be extracted to a file system supporting the pipe attribute. On any flavor of unix, it's inherently supported. On Cygwin, the file can be extracted from a Cygwin shell.
Example run with test-fifo-in and test-fifo-out:
- Start 2 instances of protocoltool and select
instance 1) In: test-fifo-in, Out: test-fifo-out
instance 2) In: test-fifo-out, Out: test-fifo-in
- Check 'Named pipes' in both instances,
- open the port and the 2 instances should be able to communicate with each other.
In Unix or in half-duplex mode in Windows, it's possible to use only the output or the input.
For unnamed pipes (stdin-stdout), if protocoltool is started from a console, characters typed on the console will be send to protocoltool's terminal, and character sent from protocoltool will appear on the console. For this interface particularly, because it uses stdin and stdout, protocoltool shouldn't be run in background mode (i.e. protocoltool &).
For any other interfaces, protocoltool can be run in background mode without problems.
Stdin will intercept control characters, such as ctl-C, ctl-Z and others may or may not appear on protocoltool's terminal.
Trick: protocoltool's stdout and stdin may be redirected to/from a device, for example:
> protocoltool < /dev/joystick
> protocoltool < /dev/midi > /dev/midi