common: IP sockets => `man 7 ip` UNIX sockets => `man 7 unix` check both structs and implement both, then use #ifdef to selectively use one or the other handle clean exits server: what to do when client disconnects? client: make sure semaphore lock for Listener is correct (look at server's ClientListener)