non-blocking server and client implementations