X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=socket.tex;h=3cb33d35a7632e25e42b824e453a70c28846de0b;hp=833d037482cf352b6e255ae71b13ad60fa32ca9d;hb=b38fb9f5c8fb8360f7ac296baa8f4a0bdd692d1c;hpb=997a10619163980437d438ba7a4d8dda3fc56d98 diff --git a/socket.tex b/socket.tex index 833d037..3cb33d3 100644 --- a/socket.tex +++ b/socket.tex @@ -541,7 +541,7 @@ il campo \var{sun\_path} deve specificare un indirizzo. Questo ha due forme; può essere un file (di tipo socket) nel filesystem o una stringa univoca (mantenuta in uno spazio di nomi astratto). Nel primo caso l'indirizzo viene specificato come una stringa (terminata da uno zero) corrispondente al -\index{\textit{pathname}}\textit{pathname} del file; nel secondo invece +\itindex{pathname}\textit{pathname} del file; nel secondo invece \var{sun\_path} inizia con uno zero e vengono usati come nome i restanti byte come stringa, senza terminazione. @@ -562,7 +562,7 @@ I socket AppleTalk permettono di usare il protocollo DDP, che a pacchetto, di tipo \const{SOCK\_DGRAM}; l'argomento \param{protocol} di \func{socket} deve essere nullo. È altresì possibile usare i socket raw specificando un tipo \const{SOCK\_RAW}, nel qual caso l'unico valore valido -per \param{protocol} è \func{ATPROTO\_DDP}. +per \param{protocol} è \const{ATPROTO\_DDP}. Gli indirizzi AppleTalk devono essere specificati tramite una struttura \struct{sockaddr\_atalk}, la cui definizione è riportata in @@ -743,7 +743,7 @@ seguito. \subsection{La \textit{endianess}} \label{sec:sock_endianess} -\index{\textit{endianess}|(} +\itindbeg{endianess} La rappresentazione di un numero binario in un computer può essere fatta in due modi, chiamati rispettivamente \textit{big endian} e \textit{little endian} a seconda di come i singoli bit vengono aggregati per formare le @@ -834,23 +834,21 @@ accedere al contenuto della prima variabile, ed infine calcola (\texttt{\small significativo (cioè, per quanto visto in fig.~\ref{fig:sock_endianess}, che sia \textit{little endian}). Infine la funzione restituisce (\texttt{\small 12}) il valore del confonto delle due variabili. - -\index{\textit{endianess}|)} +\itindend{endianess} \subsection{Le funzioni per il riordinamento} \label{sec:sock_func_ord} -Il problema connesso all'endianess\index{\textit{endianess}} è che quando si -passano dei dati da un tipo di architettura all'altra i dati vengono -interpretati in maniera diversa, e ad esempio nel caso dell'intero a 16 bit ci -si ritroverà con i due byte in cui è suddiviso scambiati di posto. Per questo -motivo si usano delle funzioni di conversione che servono a tener conto -automaticamente della possibile differenza fra l'ordinamento usato sul -computer e quello che viene usato nelle trasmissione sulla rete; queste -funzioni sono \funcd{htonl}, \funcd{htons}, \funcd{ntohl} e \funcd{ntohs} ed i -rispettivi prototipi sono: +Il problema connesso all'endianess\itindex{endianess} è che quando si passano +dei dati da un tipo di architettura all'altra i dati vengono interpretati in +maniera diversa, e ad esempio nel caso dell'intero a 16 bit ci si ritroverà +con i due byte in cui è suddiviso scambiati di posto. Per questo motivo si +usano delle funzioni di conversione che servono a tener conto automaticamente +della possibile differenza fra l'ordinamento usato sul computer e quello che +viene usato nelle trasmissione sulla rete; queste funzioni sono \funcd{htonl}, +\funcd{htons}, \funcd{ntohl} e \funcd{ntohs} ed i rispettivi prototipi sono: \begin{functions} \headdecl{netinet/in.h} \funcdecl{unsigned long int htonl(unsigned long int hostlong)}