Puoi divertirti a capire come funziona questo sorgente che usa select per discriminare tra nuova connessione ed esistente
http://www.tenouk.com/Module41.htm
Prendilo come un primo esempio
per compilarlo con gcc devi sostituire
int addrlen;
con
socklen_t addrlen;
Se lo metti in esecuzione ti puoi collegare da un altro terminare con telnet ($telnet localhost 2020) e vedrai che il server si rende conto di essere collegato con un client .
E' una mini chat, ogni client riceve i dati dagli altri client.