\subsection{Il server: prima versione}
\label{sec:TCPsimp_server_main}
-La prima versione del server, contenuta nel file \file{TCP\_echod_first.c}, è
+La prima versione del server, contenuta nel file \file{TCP\_echod\_first.c}, è
riportata in \figref{fig:TCP_echo_server_first_code}. Come abbiamo fatto per
il client anche il server è stato diviso in un corpo principale, costituito
dalla funzione \code{main}, che è molto simile a quello visto nel precedente
La seconda soluzione è più invasiva e richiede di controllare tutte le volte
l'errore restituito dalle varie system call, ripetendo la chiamata qualora
-questo corrisponda ad \errcode{EINTR}, questo comporta una riscrittura
-parziale del server secondo quanto mostrato in
+questo corrisponda ad \errcode{EINTR}. Questa soluzione ha però il pregio
+della portabilità, infatti lo standard POSIX dice che la funzionalità di
+riavvio automatico delle system call, fornita da \const{SA\_RESTART}, è
+opzionale, per cui non è detto che essa sia disponibile su qualunque sistema.
+Inoltre in certi casi,\footnote{Stevens in \cite{UNP1} accenna che la maggior
+ parte degli Unix derivati da BSD non fanno ripartire \func{select}, ed
+ alcuni non fanno ripartire neanche \func{accept} e \func{recvfrom}; nel caso
+ di Linux questa è disponibile.} anche quando questa è presente, non è detto
+possa essere usata con \func{accept}. La portabilità però viene al costo di
+una riscrittura parziale del server, secondo quanto mostrato in
\figref{fig:TCP_echo_server_code}.
\begin{figure}[!htbp]