+\chapter{Un esempio completo di client/server TCP}
+\label{cha:simple_TCP_sock}
+
+In questo capitolo riprenderemo le funzioni trattate nel precedente, usandole
+per scrivere una prima applicazione client/server che usi i socket TCP per una
+comunicazione in entrambe le direzioni.
+
+L'applicazione sarà una implementazione elementare, ma completa, del servizio
+\texttt{echo}. Si è scelto di usare questo servizio, seguendo lo Stevens, in
+quanto esso costituisce il prototipo ideale di una generica applicazione di
+rete; pertanto attraverso questo esempio potremo illustrare i fondamenti con i
+quali si può costruire una qualunque applicazione di rete.
+
+Inoltre prenderemo in esame, oltre al comportamento in condizioni normali,
+anche tutti i possibili scenari particolari (errori, sconnessione della rete,
+crash del client o del server durante la connessione) che possono avere luogo
+durante l'impiego di una applicazione di rete.
+
+
+\section{Il servizio \texttt{echo}}
+\label{sec:TCPsimp_echo}
+
+Il servizio \texttt{echo} è uno dei servizi standard solitamente provvisti
+direttamente dal superserver \texttt{inetd}, definito dall'RFC~862. Come dice
+il nome il servizio deve semplicemente rimandare indietro i dati che gli
+vengono inviati; l'RFC specifica che per il TCP una volta stabilita la
+connessione ogni dato in ingresso deve essere rimandato in uscita, fintanto
+che il chiamante non ha chiude la connessione; il servizio opera sulla porta
+TCP numero 7.
+
+Nel nostro caso l'esempio sarà strutturato scrivendo un client che legge una
+linea dallo standard input e la scrive sul server, il server leggerà una linea
+dalla connessione e la riscriverà all'indietro; sarà compito del client
+leggere la risposta del server e stamparla sullo standard output.
+