\begin{figure}[!htb]
\footnotesize \centering
- \begin{minipage}[c]{\textwidth}
+ \begin{minipage}[c]{0.80\textwidth}
\includestruct{listati/hostent.h}
\end{minipage}
\caption{La struttura \structd{hostent} per la risoluzione dei nomi a
\begin{figure}[!htb]
\footnotesize \centering
- \begin{minipage}[c]{\textwidth}
+ \begin{minipage}[c]{0.80\textwidth}
\includestruct{listati/servent.h}
\end{minipage}
\caption{La struttura \structd{servent} per la risoluzione dei nomi dei
\begin{figure}[!htb]
\footnotesize \centering
- \begin{minipage}[c]{\textwidth}
+ \begin{minipage}[c]{0.80\textwidth}
\includestruct{listati/addrinfo.h}
\end{minipage}
\caption{La struttura \structd{addrinfo} usata nella nuova interfaccia POSIX
separatamente in sez.~\ref{sec:sock_options_main}. Quello che segue è quindi
soltanto un elenco più dettagliato della breve descrizione di
tab.~\ref{tab:sock_opt_socklevel} sul significato delle varie opzioni:
-\begin{basedescript}{\desclabelwidth{2.5cm}\desclabelstyle{\nextlinelabel}}
+\begin{basedescript}{\desclabelwidth{1.5cm}\desclabelstyle{\nextlinelabel}}
\item[\const{SO\_KEEPALIVE}] questa opzione abilita un meccanismo di verifica
della persistenza di una connessione associata al socket (ed è pertanto
\begin{figure}[!htb]
\footnotesize \centering
- \begin{minipage}[c]{\textwidth}
+ \begin{minipage}[c]{0.80\textwidth}
\includestruct{listati/linger.h}
\end{minipage}
\caption{La struttura \structd{linger} richiesta come valore dell'argomento
Un esempio di questo comportamento si può abilitare nel nostro client del
servizio \textit{echo} utilizzando l'opzione \texttt{-r}; riportiamo in
fig.~\ref{fig:TCP_echo_sixth} la sezione di codice che permette di introdurre
-questa funzionalità,; al solito il codice completo è disponibile nei sorgenti
+questa funzionalità; al solito il codice completo è disponibile nei sorgenti
allegati.
\begin{figure}[!htbp]
\begin{table}[!htb]
\centering
\footnotesize
- \begin{tabular}[c]{|l|c|c|c|l|l|}
+ \begin{tabular}[c]{|l|c|c|c|l|p{6cm}|}
\hline
\textbf{Opzione}&\texttt{get}&\texttt{set}&\textbf{flag}&\textbf{Tipo}&
\textbf{Descrizione}\\
Le descrizioni riportate in tab.~\ref{tab:sock_opt_iplevel} sono estremamente
succinte, una maggiore quantità di dettagli sulle varie opzioni è fornita nel
seguente elenco:
-\begin{basedescript}{\desclabelwidth{2.5cm}\desclabelstyle{\nextlinelabel}}
+\begin{basedescript}{\desclabelwidth{1.5cm}\desclabelstyle{\nextlinelabel}}
\item[\const{IP\_OPTIONS}] l'opzione permette di impostare o leggere le
\begin{figure}[!htb]
\footnotesize \centering
- \begin{minipage}[c]{\textwidth}
+ \begin{minipage}[c]{0.80\textwidth}
\includestruct{listati/pktinfo.h}
\end{minipage}
\caption{La struttura \structd{pktinfo} usata dall'opzione
\begin{figure}[!htb]
\footnotesize \centering
- \begin{minipage}[c]{\textwidth}
+ \begin{minipage}[c]{0.80\textwidth}
\includestruct{listati/ip_mreqn.h}
\end{minipage}
\caption{La struttura \structd{ip\_mreqn} utilizzata dalle opzioni dei
tab.~\ref{tab:sock_opt_tcplevel} sono estremamente sintetiche ed indicative,
la spiegazione del funzionamento delle singole opzioni con una maggiore
quantità di dettagli è fornita nel seguente elenco:
-\begin{basedescript}{\desclabelwidth{2.5cm}\desclabelstyle{\nextlinelabel}}
-
+\begin{basedescript}{\desclabelwidth{1.5cm}\desclabelstyle{\nextlinelabel}}
\item[\const{TCP\_NODELAY}] il protocollo TCP utilizza un meccanismo di
bufferizzazione dei dati uscenti, per evitare la trasmissione di tanti
\begin{figure}[!htb]
\footnotesize \centering
- \begin{minipage}[c]{\textwidth}
+ \begin{minipage}[c]{0.80\textwidth}
\includestruct{listati/tcp_info.h}
\end{minipage}
\caption{La struttura \structd{tcp\_info} contenente le informazioni sul
\begin{table}[!htb]
\centering
\footnotesize
- \begin{tabular}[c]{|l|l|p{10cm}|}
+ \begin{tabular}[c]{|l|l|l|}
\hline
\textbf{Nome}&\textbf{Configurazione}&\textbf{Riferimento} \\
\hline
Ancora una volta le descrizioni contenute tab.~\ref{tab:sock_opt_udplevel}
sono un semplice riferimento, una maggiore quantità di dettagli sulle
caratteristiche delle opzioni citate è quello dell'elenco seguente:
-\begin{basedescript}{\desclabelwidth{2.5cm}\desclabelstyle{\nextlinelabel}}
+\begin{basedescript}{\desclabelwidth{1.5cm}\desclabelstyle{\nextlinelabel}}
\item[\const{UDP\_CORK}] questa opzione ha l'identico effetto dell'analoga
\const{TCP\_CORK} vista in precedenza per il protocollo TCP, e quando
deve sempre essere passato come puntatore ad una variabile (o struttura)
precedentemente allocata. Le costanti che identificano le operazioni sono le
seguenti:
-\begin{basedescript}{\desclabelwidth{2.5cm}\desclabelstyle{\nextlinelabel}}
+\begin{basedescript}{\desclabelwidth{1.5cm}\desclabelstyle{\nextlinelabel}}
\item[\const{SIOCGSTAMP}] restituisce il contenuto di una struttura
\struct{timeval} con la marca temporale dell'ultimo pacchetto ricevuto sul
socket, questa operazione può essere utilizzata per effettuare delle
\begin{figure}[!htb]
\footnotesize \centering
- \begin{minipage}[c]{\textwidth}
+ \begin{minipage}[c]{0.80\textwidth}
\includestruct{listati/ifreq.h}
\end{minipage}
\caption{La struttura \structd{ifreq} utilizzata dalle \func{ioctl} per le
richiedono i privilegi di amministratore o la \textit{capability}
\const{CAP\_NET\_ADMIN}, altrimenti si otterrà un errore di \errval{EPERM}.
Le costanti che identificano le operazioni disponibili sono le seguenti:
-\begin{basedescript}{\desclabelwidth{2.7cm}\desclabelstyle{\nextlinelabel}}
+\begin{basedescript}{\desclabelwidth{1.5cm}\desclabelstyle{\nextlinelabel}}
\item[\const{SIOCGIFNAME}] questa è l'unica operazione che usa il campo
\var{ifr\_name} per restituire un risultato, tutte le altre lo utilizzano
per indicare l'interfaccia sulla quale operare. L'operazione richiede che si
\begin{figure}[!htb]
\footnotesize \centering
- \begin{minipage}[c]{\textwidth}
+ \begin{minipage}[c]{0.80\textwidth}
\includestruct{listati/ifmap.h}
\end{minipage}
\caption{La struttura \structd{ifmap} utilizzata per leggere ed impostare i
\begin{figure}[!htb]
\footnotesize \centering
- \begin{minipage}[c]{\textwidth}
+ \begin{minipage}[c]{0.80\textwidth}
\includestruct{listati/ifconf.h}
\end{minipage}
\caption{La struttura \structd{ifconf}.}
illustrate nell'elenco seguente; il terzo argomento della funzione, gestito
come \textit{value result argument}, deve essere sempre il puntatore ad una
variabile di tipo \ctyp{int}:
-\begin{basedescript}{\desclabelwidth{2.5cm}\desclabelstyle{\nextlinelabel}}
+\begin{basedescript}{\desclabelwidth{1.5cm}\desclabelstyle{\nextlinelabel}}
\item[\const{SIOCINQ}] restituisce la quantità di dati non ancora letti
presenti nel buffer di ricezione; il socket non deve essere in stato
\texttt{LISTEN}, altrimenti si avrà un errore di \errval{EINVAL}.
quelle indicate dalle costanti del seguente elenco; come per i socket TCP il
terzo argomento viene gestito come \textit{value result argument} e deve
essere un puntatore ad una variabile di tipo \ctyp{int}:
-\begin{basedescript}{\desclabelwidth{2.5cm}\desclabelstyle{\nextlinelabel}}
+\begin{basedescript}{\desclabelwidth{1.5cm}\desclabelstyle{\nextlinelabel}}
\item[\const{FIONREAD}] restituisce la dimensione in byte del primo pacchetto
in attesa di ricezione, o 0 qualora non ci sia nessun pacchetto.
\item[\const{TIOCOUTQ}] restituisce il numero di byte presenti nella coda di