This code illustrates how to write a single set of source code (for a client and server) and then parameterize in the desired IPC mechanism. In this case, the IPC mechanisms include sockets, TLI, and STREAM pipes. The single set of source code is located in CPP-acceptor.cpp (which is the server) and CPP-connector.cpp (which is the non-blocking client). Here's how I typically run these tests: % test_sock_acceptor localhost:10005 & starting up daemon ./test_sock_acceptor starting server addr 127.0.0.1:10007 on handle 5 client addr 127.0.0.1:10003 on handle 6 hello % test_sock_connector localhost:10005 starting up daemon ./test_sock_connector activating 5 in handle_output please enter input..: hello in handle_output There are a number of other options that you can provide. Please see the source code for details. Note that only the sock tests work on all platforms. The other tests reply on features (in particular, non-blocking connections and TLI) that are mostly found on UNIX platforms.