Inizio della revisione del formato per la suddivisione in due parti,
[gapil.git] / tcpsock.tex
index 9cd9ab726b0c94f549525ab157f5c4164479230a..c896d448780bd9561439b55abb3e3f4092cd809e 100644 (file)
@@ -95,9 +95,8 @@ stabilisce la connessione.
 % conoscere il numero di chi si vuole chiamare. La funzione \func{accept} è
 % quando si risponde al telefono.
 
 % conoscere il numero di chi si vuole chiamare. La funzione \func{accept} è
 % quando si risponde al telefono.
 
-\begin{figure}[htb]
-  \centering
-  \includegraphics[width=10cm]{img/three_way_handshake}  
+\begin{figure}[!htb]
+  \centering \includegraphics[width=10cm]{img/three_way_handshake}  
   \caption{Il \textit{three way handshake} del TCP.}
   \label{fig:TCP_TWH}
 \end{figure}
   \caption{Il \textit{three way handshake} del TCP.}
   \label{fig:TCP_TWH}
 \end{figure}
@@ -225,9 +224,8 @@ effettua la chiusura passiva, siano accorpati in un singolo segmento. In
 fig.~\ref{fig:TCP_close} si è rappresentato graficamente lo sequenza di
 scambio dei segmenti che conclude la connessione.
 
 fig.~\ref{fig:TCP_close} si è rappresentato graficamente lo sequenza di
 scambio dei segmenti che conclude la connessione.
 
-\begin{figure}[htb]
-  \centering  
-  \includegraphics[width=10cm]{img/tcp_close}  
+\begin{figure}[!htb]
+  \centering \includegraphics[width=10cm]{img/tcp_close}  
   \caption{La chiusura di una connessione TCP.}
   \label{fig:TCP_close}
 \end{figure}
   \caption{La chiusura di una connessione TCP.}
   \label{fig:TCP_close}
 \end{figure}
@@ -299,9 +297,8 @@ In fig.~\ref{fig:TCP_conn_example} è riportato lo schema dello scambio dei
 pacchetti che avviene per una un esempio di connessione, insieme ai vari stati
 che il protocollo viene ad assumere per i due lati, server e client.
 
 pacchetti che avviene per una un esempio di connessione, insieme ai vari stati
 che il protocollo viene ad assumere per i due lati, server e client.
 
-\begin{figure}[htb]
-  \centering
-  \includegraphics[width=9cm]{img/tcp_connection}  
+\begin{figure}[!htb]
+  \centering \includegraphics[width=9cm]{img/tcp_connection}  
   \caption{Schema dello scambio di pacchetti per un esempio di connessione.}
   \label{fig:TCP_conn_example}
 \end{figure}
   \caption{Schema dello scambio di pacchetti per un esempio di connessione.}
   \label{fig:TCP_conn_example}
 \end{figure}
@@ -510,8 +507,7 @@ fatto scelte diverse per le porte effimere, in particolare in
 fig.~\ref{fig:TCP_port_alloc} sono riportate quelle di BSD e Linux.
 
 \begin{figure}[!htb]
 fig.~\ref{fig:TCP_port_alloc} sono riportate quelle di BSD e Linux.
 
 \begin{figure}[!htb]
-  \centering
-  \includegraphics[width=13cm]{img/port_alloc}  
+  \centering \includegraphics[width=13cm]{img/port_alloc}  
   \caption{Allocazione dei numeri di porta.}
   \label{fig:TCP_port_alloc}
 \end{figure}
   \caption{Allocazione dei numeri di porta.}
   \label{fig:TCP_port_alloc}
 \end{figure}
@@ -950,9 +946,8 @@ nella coda delle connessioni complete è passata al programma, o, se la coda è
 vuota, il processo viene posto in attesa e risvegliato all'arrivo della prima
 connessione completa.
 
 vuota, il processo viene posto in attesa e risvegliato all'arrivo della prima
 connessione completa.
 
-\begin{figure}[htb]
-  \centering
-  \includegraphics[width=11cm]{img/tcp_listen_backlog}  
+\begin{figure}[!htb]
+  \centering \includegraphics[width=11cm]{img/tcp_listen_backlog}  
   \caption{Schema di funzionamento delle code delle connessioni complete ed
     incomplete.}
   \label{fig:TCP_listen_backlog}
   \caption{Schema di funzionamento delle code delle connessioni complete ed
     incomplete.}
   \label{fig:TCP_listen_backlog}
@@ -1288,9 +1283,9 @@ problema si avverte solo in lettura, quando si incontra la fine del file. In
 generale non è così, e con i socket questo è particolarmente evidente.
 
 
 generale non è così, e con i socket questo è particolarmente evidente.
 
 
-\begin{figure}[htb]
+\begin{figure}[!htbp]
   \footnotesize \centering
   \footnotesize \centering
-  \begin{minipage}[c]{15cm}
+  \begin{minipage}[c]{\codesamplewidth}
     \includecodesample{listati/FullRead.c}
   \end{minipage} 
   \normalsize
     \includecodesample{listati/FullRead.c}
   \end{minipage} 
   \normalsize
@@ -1315,10 +1310,10 @@ fig.~\ref{fig:sock_FullRead_code} e fig.~\ref{fig:sock_FullWrite_code} ed è
 disponibile fra i sorgenti allegati alla guida nei file \file{FullRead.c} e
 \file{FullWrite.c}.
 
 disponibile fra i sorgenti allegati alla guida nei file \file{FullRead.c} e
 \file{FullWrite.c}.
 
-\begin{figure}[htb]
+\begin{figure}[!htbp]
   \centering
   \footnotesize \centering
   \centering
   \footnotesize \centering
-  \begin{minipage}[c]{15cm}
+  \begin{minipage}[c]{\codesamplewidth}
     \includecodesample{listati/FullWrite.c}
   \end{minipage} 
   \normalsize
     \includecodesample{listati/FullWrite.c}
   \end{minipage} 
   \normalsize
@@ -1359,9 +1354,9 @@ funzione per stampare un messaggio di aiuto) è allegato alla guida nella
 sezione dei codici sorgente e può essere compilato su una qualunque macchina
 GNU/Linux.
 
 sezione dei codici sorgente e può essere compilato su una qualunque macchina
 GNU/Linux.
 
-\begin{figure}[!htb]
+\begin{figure}[!htbp]
   \footnotesize \centering
   \footnotesize \centering
-  \begin{minipage}[c]{15cm}
+  \begin{minipage}[c]{\codesamplewidth}
     \includecodesample{listati/TCP_daytime.c}
   \end{minipage} 
   \normalsize
     \includecodesample{listati/TCP_daytime.c}
   \end{minipage} 
   \normalsize
@@ -1459,7 +1454,7 @@ esempi.
 
 \begin{figure}[!htbp]
   \footnotesize \centering
 
 \begin{figure}[!htbp]
   \footnotesize \centering
-  \begin{minipage}[c]{15cm}
+  \begin{minipage}[c]{\codesamplewidth}
     \includecodesample{listati/TCP_iter_daytimed.c}
   \end{minipage} 
   \normalsize
     \includecodesample{listati/TCP_iter_daytimed.c}
   \end{minipage} 
   \normalsize
@@ -1556,9 +1551,9 @@ riguardante l'apertura passiva del socket). Al solito il sorgente completo del
 server, nel file \texttt{TCP\_cunc\_daytimed.c}, è allegato insieme ai
 sorgenti degli altri esempi.
 
 server, nel file \texttt{TCP\_cunc\_daytimed.c}, è allegato insieme ai
 sorgenti degli altri esempi.
 
-\begin{figure}[!htb]
+\begin{figure}[!htbp]
   \footnotesize \centering
   \footnotesize \centering
-  \begin{minipage}[c]{15cm}
+  \begin{minipage}[c]{\codesamplewidth}
     \includecodesample{listati/TCP_cunc_daytimed.c}
   \end{minipage} 
   \normalsize
     \includecodesample{listati/TCP_cunc_daytimed.c}
   \end{minipage} 
   \normalsize
@@ -1696,9 +1691,9 @@ client per il servizio \textit{daytime} (vedi
 sez.~\ref{sec:TCP_daytime_client}), e la prima parte (\texttt{\small 10--27})
 è sostanzialmente identica, a parte l'uso di una porta diversa.
 
 sez.~\ref{sec:TCP_daytime_client}), e la prima parte (\texttt{\small 10--27})
 è sostanzialmente identica, a parte l'uso di una porta diversa.
 
-\begin{figure}[!htb]
+\begin{figure}[!htbp]
   \footnotesize \centering
   \footnotesize \centering
-  \begin{minipage}[c]{15.6 cm}
+  \begin{minipage}[c]{\codesamplewidth}
     \includecodesample{listati/TCP_echo_first.c}
   \end{minipage} 
   \normalsize
     \includecodesample{listati/TCP_echo_first.c}
   \end{minipage} 
   \normalsize
@@ -1744,9 +1739,9 @@ buffer di ricezione e viene inserita (\texttt{\small 8}) la terminazione della
 stringa e per poter usare (\texttt{\small 9}) la funzione \func{fputs} per
 scriverli su \file{stdout}.
 
 stringa e per poter usare (\texttt{\small 9}) la funzione \func{fputs} per
 scriverli su \file{stdout}.
 
-\begin{figure}[!htb]
+\begin{figure}[!htbp]
   \footnotesize \centering
   \footnotesize \centering
-  \begin{minipage}[c]{15.6cm}
+  \begin{minipage}[c]{\codesamplewidth}
     \includecodesample{listati/ClientEcho_first.c}
   \end{minipage} 
   \normalsize
     \includecodesample{listati/ClientEcho_first.c}
   \end{minipage} 
   \normalsize
@@ -1781,7 +1776,7 @@ sez.~\ref{sec:TCP_daytime_cunc_server}, e da una funzione ausiliaria
 
 \begin{figure}[!htbp]
   \footnotesize \centering
 
 \begin{figure}[!htbp]
   \footnotesize \centering
-  \begin{minipage}[c]{15.6cm}
+  \begin{minipage}[c]{\codesamplewidth}
     \includecodesample{listati/TCP_echod_first.c}
   \end{minipage} 
   \normalsize
     \includecodesample{listati/TCP_echod_first.c}
   \end{minipage} 
   \normalsize
@@ -1861,9 +1856,9 @@ in modalità interattiva (attivabile con l'opzione \texttt{-i}) si usa
 (\texttt{\small 5}) semplicemente la funzione \func{perror} per stampare sullo
 standard error.
 
 (\texttt{\small 5}) semplicemente la funzione \func{perror} per stampare sullo
 standard error.
 
-\begin{figure}[!htb]
+\begin{figure}[!htbp]
   \footnotesize \centering
   \footnotesize \centering
-  \begin{minipage}[c]{15.6cm}
+  \begin{minipage}[c]{\codesamplewidth}
     \includecodesample{listati/PrintErr.c}
   \end{minipage} 
   \normalsize
     \includecodesample{listati/PrintErr.c}
   \end{minipage} 
   \normalsize
@@ -1885,9 +1880,9 @@ si incarica di tenere conto automaticamente della possibilità che non tutti i
 dati di cui è richiesta la scrittura vengano trasmessi con una singola
 \func{write}.
 
 dati di cui è richiesta la scrittura vengano trasmessi con una singola
 \func{write}.
 
-\begin{figure}[!htb] 
+\begin{figure}[!htbp
   \footnotesize \centering
   \footnotesize \centering
-  \begin{minipage}[c]{15.6cm}
+  \begin{minipage}[c]{\codesamplewidth}
     \includecodesample{listati/ServEcho_first.c}
   \end{minipage} 
   \normalsize
     \includecodesample{listati/ServEcho_first.c}
   \end{minipage} 
   \normalsize
@@ -2098,9 +2093,9 @@ nuova funzione \func{SignalRestart}\footnote{anche questa è definita, insieme
   allegati.} come mostrato in fig.~\ref{fig:sig_SignalRestart_code}, ed
 installeremo il gestore usando quest'ultima.
 
   allegati.} come mostrato in fig.~\ref{fig:sig_SignalRestart_code}, ed
 installeremo il gestore usando quest'ultima.
 
-\begin{figure}[!htb]
-  \footnotesize  \centering
-  \begin{minipage}[c]{15.6cm}
+\begin{figure}[!htbp]
+  \footnotesize \centering
+  \begin{minipage}[c]{\codesamplewidth}
     \includecodesample{listati/SignalRestart.c}
   \end{minipage}  
   \normalsize 
     \includecodesample{listati/SignalRestart.c}
   \end{minipage}  
   \normalsize 
@@ -2156,9 +2151,9 @@ fig.~\ref{fig:TCP_echo_server_code_second} la sezione di codice relativa alla
 gestione di tutte queste opzioni, che può essere trovata nel sorgente del
 programma.
 
 gestione di tutte queste opzioni, che può essere trovata nel sorgente del
 programma.
 
-\begin{figure}[!htb]
+\begin{figure}[!htbp]
   \footnotesize \centering
   \footnotesize \centering
-  \begin{minipage}[c]{15.6cm}
+  \begin{minipage}[c]{\codesamplewidth}
     \includecodesample{listati/TCP_echod_second.c}
   \end{minipage} 
   \normalsize
     \includecodesample{listati/TCP_echod_second.c}
   \end{minipage} 
   \normalsize
@@ -2222,9 +2217,9 @@ sia per tenere conto della nuova funzionalità di debugging, che per effettuare
 un controllo in caso di errore; il codice della nuova versione è mostrato in
 fig.~\ref{fig:TCP_ServEcho_second}.
 
 un controllo in caso di errore; il codice della nuova versione è mostrato in
 fig.~\ref{fig:TCP_ServEcho_second}.
 
-\begin{figure}[!htb] 
+\begin{figure}[!htbp
   \footnotesize \centering
   \footnotesize \centering
-  \begin{minipage}[c]{15.6cm}
+  \begin{minipage}[c]{\codesamplewidth}
     \includecodesample{listati/ServEcho_second.c}
   \end{minipage} 
   \normalsize
     \includecodesample{listati/ServEcho_second.c}
   \end{minipage} 
   \normalsize
@@ -2276,9 +2271,8 @@ connessione viene abortita sul lato client per un qualche errore di rete con
 l'invio di un segmento RST, prima che nel server sia stata chiamata la
 funzione \func{accept}.
 
 l'invio di un segmento RST, prima che nel server sia stata chiamata la
 funzione \func{accept}.
 
-\begin{figure}[htb]
-  \centering
-  \includegraphics[width=10cm]{img/tcp_client_early_abort}  
+\begin{figure}[!htb]
+  \centering \includegraphics[width=10cm]{img/tcp_client_early_abort}  
   \caption{Un possibile caso di terminazione precoce della connessione.}
   \label{fig:TCP_early_abort}
 \end{figure}
   \caption{Un possibile caso di terminazione precoce della connessione.}
   \label{fig:TCP_early_abort}
 \end{figure}
@@ -2508,9 +2502,9 @@ di errore, per questo dovremo riscrivere la funzione \func{ClientEcho}, in
 modo da controllare gli stati di uscita delle varie chiamate. Si è riportata
 la nuova versione della funzione in fig.~\ref{fig:TCP_ClientEcho_second}.
 
 modo da controllare gli stati di uscita delle varie chiamate. Si è riportata
 la nuova versione della funzione in fig.~\ref{fig:TCP_ClientEcho_second}.
 
-\begin{figure}[!htb]
+\begin{figure}[!htbp]
   \footnotesize \centering
   \footnotesize \centering
-  \begin{minipage}[c]{15.6cm}
+  \begin{minipage}[c]{\codesamplewidth}
     \includecodesample{listati/ClientEcho_second.c}
   \end{minipage} 
   \normalsize
     \includecodesample{listati/ClientEcho_second.c}
   \end{minipage} 
   \normalsize
@@ -2898,9 +2892,9 @@ condizione di errore (con un segmento RST) il socket connesso sarà pronto in
 lettura (nell'ultimo caso anche in scrittura, ma questo non è necessario ai
 nostri scopi).
 
 lettura (nell'ultimo caso anche in scrittura, ma questo non è necessario ai
 nostri scopi).
 
-\begin{figure}[!htb]
+\begin{figure}[!htbp]
   \footnotesize \centering
   \footnotesize \centering
-  \begin{minipage}[c]{15.6cm}
+  \begin{minipage}[c]{\codesamplewidth}
     \includecodesample{listati/ClientEcho_third.c}
   \end{minipage} 
   \normalsize
     \includecodesample{listati/ClientEcho_third.c}
   \end{minipage} 
   \normalsize
@@ -3177,9 +3171,9 @@ effettuerà la chiusura dalla sua parte. Solo alla ricezione della chiusura del
 socket da parte del server il client potrà essere sicuro della ricezione di
 tutti i dati e della terminazione effettiva della connessione.
 
 socket da parte del server il client potrà essere sicuro della ricezione di
 tutti i dati e della terminazione effettiva della connessione.
 
-\begin{figure}[!htb]
+\begin{figure}[!htbp]
   \footnotesize \centering
   \footnotesize \centering
-  \begin{minipage}[c]{15.6cm}
+  \begin{minipage}[c]{\codesamplewidth}
     \includecodesample{listati/ClientEcho.c}
   \end{minipage} 
   \normalsize
     \includecodesample{listati/ClientEcho.c}
   \end{minipage} 
   \normalsize
@@ -3255,9 +3249,8 @@ limiterà a registrare l'entrata in uso di un nuovo file descriptor ed
 utilizzerà \func{select} per rilevare la presenza di dati in arrivo su tutti i
 file descriptor attivi, operando direttamente su ciascuno di essi.
 
 utilizzerà \func{select} per rilevare la presenza di dati in arrivo su tutti i
 file descriptor attivi, operando direttamente su ciascuno di essi.
 
-\begin{figure}[htb]
-  \centering
-  \includegraphics[width=13cm]{img/TCPechoMult}
+\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}
   \caption{Schema del nuovo server echo basato sull'I/O multiplexing.}
   \label{fig:TCP_echo_multiplex}
 \end{figure}
@@ -3273,7 +3266,7 @@ disponibile coi sorgenti allegati nel file \texttt{select\_echod.c}.
 
 \begin{figure}[!htbp]
   \footnotesize \centering
 
 \begin{figure}[!htbp]
   \footnotesize \centering
-  \begin{minipage}[c]{15.6cm}
+  \begin{minipage}[c]{\codesamplewidth}
     \includecodesample{listati/select_echod.c}
   \end{minipage} 
   \normalsize
     \includecodesample{listati/select_echod.c}
   \end{minipage} 
   \normalsize
@@ -3482,7 +3475,7 @@ ma la struttura del programma resta sostanzialmente la stessa.
 
 \begin{figure}[!htbp]
   \footnotesize \centering
 
 \begin{figure}[!htbp]
   \footnotesize \centering
-  \begin{minipage}[c]{15.6cm}
+  \begin{minipage}[c]{\codesamplewidth}
     \includecodesample{listati/poll_echod.c}
   \end{minipage} 
   \normalsize
     \includecodesample{listati/poll_echod.c}
   \end{minipage} 
   \normalsize