On Sat Jul 18 03:46:01 EDT 2009, bakul+pl...@bitblocks.com wrote:
> Has anyone extended the idea of channels where the
> sender/receiver are on different machines (or at least in
> different processes)?  A netcat equivalent for channels!

i think the general idea is that if you want to do this between
arbitrary machines, you provide a 9p interface.  you can think
of 9p as a channel with a predefined set of messages.  acme
does this.  kernel devices do this. 

however inferno provides file2chan
http://www.vitanuova.com/inferno/man/2/sys-file2chan.html.
of course, somebody has to provide the 9p interface, even
if that's just posting a fd to /srv.

if you wanted to do something like file2chan in plan 9 and c, you're
going to have to marshal your data.  this means that chanconnect
as specified is impossible.  (acme avoids this by using text only.
the kernel devices keep this under control by using a defined
byte order and very few binary interfaces.)  i don't know how you would
solve the naming problems e.g. acme would have using dial-string
addressing  (i assume that's what you ment; host-port addressing is
ip specific.).  what would be the port-numbering huristic for allowing
multiple acmes on the same cpu server?

after whittling away problem cases, i think one is left with pipes,
and it seems pretty clear how to connect things so that
chan <-> pipe <-> chan.  one could generalize to multiple
machines by using tools like cpu(1).

- erik

Reply via email to