Sometimes you want to read and write to named pipes to send things from one vim instance to another, possibly even between machines. For local ones, create a fifo in /tmp
$ mknod /tmp/myfifo p
and then in the sending vim:
:<range>w !cat>/tmp/myfifo
and in the receiving vim:
:r /tmp/myfifo

Over a network we use netcat. So on the receiving machine

:r! nc -l 12345
and on the sending machine
:<range> !nc otherhost 12345 -w 0
note that in this instance, receiving must be run before sending.