X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=socket.tex;h=2287b172b6ba833e8c9f92da8b68d92a110e0fca;hp=7e79d39439dc2ce7ed6f15f002b05ab72484e2cb;hb=5afbcf1d6a84ab2a527859d8fd05b75a31e39736;hpb=7208522fd60468969d96dba5d8dd2cbd24b75b89 diff --git a/socket.tex b/socket.tex index 7e79d39..2287b17 100644 --- a/socket.tex +++ b/socket.tex @@ -251,7 +251,7 @@ valori numerici.\footnote{in Linux, come si può verificare andando a guardare seguendo la convenzione usata nelle pagine di manuale. I domini (e i relativi nomi simbolici), così come i nomi delle famiglie di -indirizzi, sono definiti dall'\textit{header file} \headfile{socket.h}. Un +indirizzi, sono definiti dall'\textit{header file} \headfiled{socket.h}. Un elenco delle famiglie di protocolli disponibili in Linux è riportato in tab.~\ref{tab:net_pf_names}. L'elenco indica tutti i protocolli definiti; fra questi però saranno utilizzabili solo quelli per i quali si è compilato il @@ -280,7 +280,7 @@ seguenti costanti:\footnote{le pagine di manuale POSIX riportano solo i primi tre tipi, Linux supporta anche gli altri, come si può verificare nel file \texttt{include/linux/net.h} dei sorgenti del kernel.} -\begin{basedescript}{\desclabelwidth{2.9cm}\desclabelstyle{\nextlinelabel}} +\begin{basedescript}{\desclabelwidth{1.5cm}\desclabelstyle{\nextlinelabel}} \item[\const{SOCK\_STREAM}] Provvede un canale di trasmissione dati bidirezionale, sequenziale e affidabile. Opera su una connessione con un altro socket. I dati vengono ricevuti e trasmessi come un flusso continuo di @@ -302,8 +302,8 @@ seguenti costanti:\footnote{le pagine di manuale POSIX riportano solo i primi devono usarlo, è riservato all'uso di sistema. \item[\const{SOCK\_RDM}] Provvede un canale di trasmissione di dati affidabile, ma in cui non è garantito l'ordine di arrivo dei pacchetti. -\item[\const{SOCK\_PACKET}] Obsoleto, non deve essere più usato.\footnote{e - pertanto non ne parleremo ulteriormente.} +\item[\const{SOCK\_PACKET}] Obsoleto, non deve essere più usato (e pertanto + non ne parleremo ulteriormente). \end{basedescript} A partire dal kernel 2.6.27 l'argomento \param{type} della funzione @@ -312,7 +312,7 @@ impostare dei flag relativi alle caratteristiche generali del \textit{socket} non strettamente attinenti all'indicazione del tipo secondo i valori appena illustrati. Essi infatti possono essere combinati con un OR aritmetico delle ulteriori costanti: -\begin{basedescript}{\desclabelwidth{2.9cm}\desclabelstyle{\nextlinelabel}} +\begin{basedescript}{\desclabelwidth{1.5cm}\desclabelstyle{\nextlinelabel}} \item[\const{SOCK\_CLOEXEC}] imposta il flag di \textit{close-on-exec} sul file descriptor del socket, ottenendo lo stesso effetto del flag \const{O\_CLOEXEC} di \func{open} (vedi tab.~\ref{tab:open_operation_flag}), @@ -411,7 +411,7 @@ una struttura generica per gli indirizzi dei socket, \struct{sockaddr}, che si \begin{figure}[!htb] \footnotesize \centering - \begin{minipage}[c]{\textwidth} + \begin{minipage}[c]{0.80\textwidth} \includestruct{listati/sockaddr.h} \end{minipage} \caption{La struttura generica degli indirizzi dei socket @@ -439,20 +439,20 @@ definita nell'include file \headfile{sys/socket.h}. \multicolumn{1}{|c|}{\textbf{Header}} \\ \hline \hline - \type{int8\_t} & intero a 8 bit con segno & \headfile{sys/types.h}\\ - \type{uint8\_t} & intero a 8 bit senza segno & \headfile{sys/types.h}\\ - \type{int16\_t} & intero a 16 bit con segno & \headfile{sys/types.h}\\ - \type{uint16\_t} & intero a 16 bit senza segno& \headfile{sys/types.h}\\ - \type{int32\_t} & intero a 32 bit con segno & \headfile{sys/types.h}\\ - \type{uint32\_t} & intero a 32 bit senza segno& \headfile{sys/types.h}\\ + \typed{int8\_t} & intero a 8 bit con segno & \headfile{sys/types.h}\\ + \typed{uint8\_t} & intero a 8 bit senza segno & \headfile{sys/types.h}\\ + \typed{int16\_t} & intero a 16 bit con segno & \headfile{sys/types.h}\\ + \typed{uint16\_t} & intero a 16 bit senza segno& \headfile{sys/types.h}\\ + \typed{int32\_t} & intero a 32 bit con segno & \headfile{sys/types.h}\\ + \typed{uint32\_t} & intero a 32 bit senza segno& \headfile{sys/types.h}\\ \hline - \type{sa\_family\_t} & famiglia degli indirizzi&\headfile{sys/socket.h}\\ - \type{socklen\_t} & lunghezza (\type{uint32\_t}) dell'indirizzo di + \typed{sa\_family\_t} & famiglia degli indirizzi&\headfile{sys/socket.h}\\ + \typed{socklen\_t} & lunghezza (\type{uint32\_t}) dell'indirizzo di un socket& \headfile{sys/socket.h}\\ \hline - \type{in\_addr\_t} & indirizzo IPv4 (\type{uint32\_t}) & + \typed{in\_addr\_t} & indirizzo IPv4 (\type{uint32\_t}) & \headfile{netinet/in.h}\\ - \type{in\_port\_t} & porta TCP o UDP (\type{uint16\_t})& + \typed{in\_port\_t} & porta TCP o UDP (\type{uint16\_t})& \headfile{netinet/in.h}\\ \hline \end{tabular} @@ -482,12 +482,12 @@ sarebbe più immediato per l'utente (che non dovrebbe più eseguire il casting), I socket di tipo \const{PF\_INET} vengono usati per la comunicazione attraverso internet; la struttura per gli indirizzi per un socket internet (se si usa IPv4) è definita come \struct{sockaddr\_in} nell'header file -\headfile{netinet/in.h} ed ha la forma mostrata in +\headfiled{netinet/in.h} ed ha la forma mostrata in fig.~\ref{fig:sock_sa_ipv4_struct}, conforme allo standard POSIX.1g. \begin{figure}[!htb] \footnotesize\centering - \begin{minipage}[c]{\textwidth} + \begin{minipage}[c]{0.80\textwidth} \includestruct{listati/sockaddr_in.h} \end{minipage} \caption{La struttura \structd{sockaddr\_in} degli indirizzi dei socket @@ -514,7 +514,7 @@ sez.~\ref{sec:TCP_func_bind}) su queste porte. Il membro \var{sin\_addr} contiene un indirizzo internet, e viene acceduto sia come struttura (un resto di una implementazione precedente in cui questa era -una \direct{union} usata per accedere alle diverse classi di indirizzi) che +una \dirct{union} usata per accedere alle diverse classi di indirizzi) che direttamente come intero. In \headfile{netinet/in.h} vengono definite anche alcune costanti che identificano alcuni indirizzi speciali, riportati in tab.~\ref{tab:TCP_ipv4_addr}, che rincontreremo più avanti. @@ -539,7 +539,7 @@ riportata in fig.~\ref{fig:sock_sa_ipv6_struct}. \begin{figure}[!htb] \footnotesize \centering - \begin{minipage}[c]{\textwidth} + \begin{minipage}[c]{0.80\textwidth} \includestruct{listati/sockaddr_in6.h} \end{minipage} \caption{La struttura \structd{sockaddr\_in6} degli indirizzi dei socket @@ -580,12 +580,12 @@ fig.~\ref{fig:sock_sa_local_struct}. \begin{figure}[!htb] \footnotesize \centering - \begin{minipage}[c]{\textwidth} + \begin{minipage}[c]{0.80\textwidth} \includestruct{listati/sockaddr_un.h} \end{minipage} \caption{La struttura \structd{sockaddr\_un} degli indirizzi dei socket locali (detti anche \textit{unix domain}) definita in - \headfile{sys/un.h}.} + \headfiled{sys/un.h}.} \label{fig:sock_sa_local_struct} \end{figure} @@ -620,11 +620,11 @@ per \param{protocol} è \const{ATPROTO\_DDP}. Gli indirizzi AppleTalk devono essere specificati tramite una struttura \struct{sockaddr\_atalk}, la cui definizione è riportata in fig.~\ref{fig:sock_sa_atalk_struct}; la struttura viene dichiarata includendo -il file \headfile{netatalk/at.h}. +il file \headfiled{netatalk/at.h}. \begin{figure}[!htb] \footnotesize \centering - \begin{minipage}[c]{\textwidth} + \begin{minipage}[c]{0.80\textwidth} \includestruct{listati/sockaddr_atalk.h} \end{minipage} \caption{La struttura \structd{sockaddr\_atalk} degli indirizzi dei socket