Devi usare il multiplexing.
Utilizzando select, o poll, setti un timeout sul file descriptor, cosi la connessione viene chiusa dopo tot secondi.
Vedi qua:
http://beej.us/guide/bgnet/output/ht...ed.html#select
Se vuoi veramente imiparare ti consiglio un libro:
http://www.libreriauniversitaria.it/.../9780131411555
![]()