X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=socket.tex;h=ef729a56eb0e35ae88b95d02b57f4e7c911696f1;hp=8511778d1ea9911f85cec266988358165177e01d;hb=fe017ba5da165123761dbb85036ad3ed8bbd7ad2;hpb=c00fca809a709ea67ab3dfdede3a83ead0a9fcaf diff --git a/socket.tex b/socket.tex index 8511778..ef729a5 100644 --- a/socket.tex +++ b/socket.tex @@ -193,9 +193,8 @@ protocolli disponibili sono riportate in \tabref{tab:net_pf_names}. Non tutte le famiglie di protocolli sono accessibili dall'utente generico, ad esempio in generale tutti i socket di tipo \macro{SOCK\_RAW} possono essere -creati solo da processi che hanno i privilegi di root (cioè con -\textit{effective user id} uguale a zero) o con la capability -\macro{CAP\_NET\_RAW}. +creati solo da processi che hanno i privilegi di root (cioè con userid +effettivo uguale a zero) o con la capability \macro{CAP\_NET\_RAW}. \subsection{Il tipo, o stile} @@ -416,9 +415,9 @@ porta viene impostato al numero di protocollo. Il membro \var{sin\_family} deve essere sempre impostato; \var{sin\_port} specifica il numero di porta (vedi \secref{sec:TCPel_port_num}; i numeri di porta sotto il 1024 sono chiamati \textsl{riservati} in quanto utilizzati da -servizi standard. Soltanto processi con i privilegi di root (effective uid -uguale a zero) o con la capability \macro{CAP\_NET\_BIND\_SERVICE} possono -usare la funzione \func{bind} su queste porte. +servizi standard. Soltanto processi con i privilegi di root (con userid +effettivo uguale a zero) o con la capability \macro{CAP\_NET\_BIND\_SERVICE} +possono usare la funzione \func{bind} su queste porte. Il membro \var{sin\_addr} contiene l'indirizzo internet dell'altro capo della comunicazione, e viene acceduto sia come struttura (un resto di una @@ -481,12 +480,13 @@ possibilit \subsection{La struttura degli indirizzi locali} \label{sec:sock_sa_local} -I socket di tipo \macro{PF\_UNIX} vengono usati per una comunicazione -efficiente fra processi che stanno sulla stessa macchina; essi rispetto ai +I socket di tipo \macro{PF\_UNIX} o \macro{PF\_LOCAL} vengono usati per una +comunicazione fra processi che stanno sulla stessa macchina (per vengono +chiamati \textit{local domain} o anche \textit{Unix domain}); essi rispetto ai precedenti possono essere anche creati in maniera anonima attraverso la -funzione \func{socketpair}. Quando però si vuole fare riferimento esplicito -ad uno di questi socket si deve usare la seguente struttura di indirizzi -definita nel file di header \file{sys/un.h}. +funzione \func{socketpair} (vedi \secref{sec:ipc_socketpair}). Quando però si +vuole fare riferimento esplicito ad uno di questi socket si deve usare la +seguente struttura di indirizzi definita nel file di header \file{sys/un.h}. \begin{figure}[!htb] \footnotesize @@ -785,8 +785,9 @@ ssize_t SockRead(int fd, void *buf, size_t count) Per questo motivo seguendo l'esempio di W. R. Stevens si sono definite due funzioni \func{SockRead} e \func{SockWrite} che eseguono la lettura da un socket tenendo conto di questa caratteristica, ed in grado di ritornare dopo -avere letto o scritto esattamente il numero di byte specificato; il sorgente -è riportato in \curfig\ e \nfig\ ed è disponibile fra i sorgenti allegati alla +avere letto o scritto esattamente il numero di byte specificato; il sorgente è +riportato in \figref{fig:sock_SockRead_code} e +\figref{fig:sock_SockWrite_code} ed è disponibile fra i sorgenti allegati alla guida nei files \file{SockRead.c} e \file{SockWrite.c}. \begin{figure}[htb]