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.
 
-\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}
@@ -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.
 
-\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}
@@ -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.
 
-\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}
@@ -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]
-  \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}
@@ -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.
 
-\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}
@@ -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.
 
 
-\begin{figure}[htb]
+\begin{figure}[!htbp]
   \footnotesize \centering
-  \begin{minipage}[c]{15cm}
+  \begin{minipage}[c]{\codesamplewidth}
     \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}.
 
-\begin{figure}[htb]
+\begin{figure}[!htbp]
   \centering
   \footnotesize \centering
-  \begin{minipage}[c]{15cm}
+  \begin{minipage}[c]{\codesamplewidth}
     \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.
 
-\begin{figure}[!htb]
+\begin{figure}[!htbp]
   \footnotesize \centering
-  \begin{minipage}[c]{15cm}
+  \begin{minipage}[c]{\codesamplewidth}
     \includecodesample{listati/TCP_daytime.c}
   \end{minipage} 
   \normalsize
@@ -1459,7 +1454,7 @@ esempi.
 
 \begin{figure}[!htbp]
   \footnotesize \centering
-  \begin{minipage}[c]{15cm}
+  \begin{minipage}[c]{\codesamplewidth}
     \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.
 
-\begin{figure}[!htb]
+\begin{figure}[!htbp]
   \footnotesize \centering
-  \begin{minipage}[c]{15cm}
+  \begin{minipage}[c]{\codesamplewidth}
     \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.
 
-\begin{figure}[!htb]
+\begin{figure}[!htbp]
   \footnotesize \centering
-  \begin{minipage}[c]{15.6 cm}
+  \begin{minipage}[c]{\codesamplewidth}
     \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}.
 
-\begin{figure}[!htb]
+\begin{figure}[!htbp]
   \footnotesize \centering
-  \begin{minipage}[c]{15.6cm}
+  \begin{minipage}[c]{\codesamplewidth}
     \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{minipage}[c]{15.6cm}
+  \begin{minipage}[c]{\codesamplewidth}
     \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.
 
-\begin{figure}[!htb]
+\begin{figure}[!htbp]
   \footnotesize \centering
-  \begin{minipage}[c]{15.6cm}
+  \begin{minipage}[c]{\codesamplewidth}
     \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}.
 
-\begin{figure}[!htb] 
+\begin{figure}[!htbp
   \footnotesize \centering
-  \begin{minipage}[c]{15.6cm}
+  \begin{minipage}[c]{\codesamplewidth}
     \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.
 
-\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 
@@ -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.
 
-\begin{figure}[!htb]
+\begin{figure}[!htbp]
   \footnotesize \centering
-  \begin{minipage}[c]{15.6cm}
+  \begin{minipage}[c]{\codesamplewidth}
     \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}.
 
-\begin{figure}[!htb] 
+\begin{figure}[!htbp
   \footnotesize \centering
-  \begin{minipage}[c]{15.6cm}
+  \begin{minipage}[c]{\codesamplewidth}
     \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}.
 
-\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}
@@ -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}.
 
-\begin{figure}[!htb]
+\begin{figure}[!htbp]
   \footnotesize \centering
-  \begin{minipage}[c]{15.6cm}
+  \begin{minipage}[c]{\codesamplewidth}
     \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).
 
-\begin{figure}[!htb]
+\begin{figure}[!htbp]
   \footnotesize \centering
-  \begin{minipage}[c]{15.6cm}
+  \begin{minipage}[c]{\codesamplewidth}
     \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.
 
-\begin{figure}[!htb]
+\begin{figure}[!htbp]
   \footnotesize \centering
-  \begin{minipage}[c]{15.6cm}
+  \begin{minipage}[c]{\codesamplewidth}
     \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.
 
-\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}
@@ -3273,7 +3266,7 @@ disponibile coi sorgenti allegati nel file \texttt{select\_echod.c}.
 
 \begin{figure}[!htbp]
   \footnotesize \centering
-  \begin{minipage}[c]{15.6cm}
+  \begin{minipage}[c]{\codesamplewidth}
     \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{minipage}[c]{15.6cm}
+  \begin{minipage}[c]{\codesamplewidth}
     \includecodesample{listati/poll_echod.c}
   \end{minipage} 
   \normalsize