+\subsection{Un server basato sull'I/O multiplexing}
+\label{sec:TCP_serv_select}
+
+Seguendo di nuovo le orme di Stevens in \cite{UNP1} vediamo ora come con
+l'utilizzo dell'I/O multiplexing diventi possibile riscrivere completamente il
+nostro server \textit{echo} con una architettura completamente diversa, in
+modo da evitare di dover creare un nuovo processo tutte le volte che si ha una
+connessione.
+
+La struttura del nuovo server è illustrata in \figref{fig:TCP_echo_multiplex},
+in questo caso avremo un solo processo che ad ogni nuova connessione da parte
+del client sul socket in ascolto inserirà il socket connesso ad essa relativo
+in una opportuna tabella, poi utilizzerà \func{select} per rilevare la
+presenza di dati in arrivo su ciascun socket connesso, riutilizzandolo per
+inviare i dati in risposta.
+
+
+\begin{figure}[htb]
+ \centering
+ \includegraphics[width=13cm]{img/TCPechoMult}
+ \caption{Schema del nuovo server echo basato sull'I/O multiplexing.}
+ \label{fig:TCP_echo_multiplex}
+\end{figure}
+
+
+
+
+\subsection{Un esempio di I/O multiplexing con \func{poll}}
+\label{sec:TCP_serv_poll}
+
+Abbiamo visto in \secref{sec:TCP_serv_select} come creare un server che
+utilizzi l'I/O multiplexing attraverso l'impiego della funzione \func{select},
+ma in \secref{sec:file_multiplexing} abbiamo visto come la funzione
+\func{poll} costituisca una alternativa a \func{select} con delle funzionalità
+migliori, vediamo allora come reimplementare il nostro servizio usando questa
+funzione.
+