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!
Actual plumbing seems easy: one can add a `proxy' thread in each process to send a message via whatever inter process mechanism is available. One issue would be for the two sides to identify a specific channel. I imagine something like the following would work. // on the client: chan = chanconnect("<host>:<port>", elemsize, nelem); // on the server: x = chanbind("<port>", elemsize, nelem); chan = chanaccept(x); // to allow multiple connections Or one can build this on top of a socket or file descriptor. Another issue is endianness (unless all processors are the same type). Yet another issue is sending variable size things. In a single address space you can pass a pointer + may be a size but that trick doesn't work across process (or machine boundaries) -- so pretty much have to add some marshalling/unmarshalling that knows about types. Or is there a better idea? This certainly seems preferable to RPC or plain byte pipes for communicating structured values. Thanks! --bakul