Aggiornamento al 2010 delle note di copyright
[gapil.git] / othersock.tex
index 439ccefcd55d92a940a308f87bc8464761b8806a..146e784fb61546c294e91a4fbe047839c0b3762e 100644 (file)
@@ -1,6 +1,6 @@
 %% othersock.tex
 %%
 %% othersock.tex
 %%
-%% Copyright (C) 2004-2006 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2004-2010 Simone Piccardi.  Permission is granted to
 %% copy, distribute and/or modify this document under the terms of the GNU Free
 %% Documentation License, Version 1.1 or any later version published by the
 %% Free Software Foundation; with the Invariant Sections being "Un preambolo",
 %% copy, distribute and/or modify this document under the terms of the GNU Free
 %% Documentation License, Version 1.1 or any later version published by the
 %% Free Software Foundation; with the Invariant Sections being "Un preambolo",
@@ -8,12 +8,13 @@
 %% license is included in the section entitled "GNU Free Documentation
 %% License".
 %%
 %% license is included in the section entitled "GNU Free Documentation
 %% License".
 %%
+
 \chapter{Gli altri tipi di socket}
 \label{cha:other_socket}
 
 \chapter{Gli altri tipi di socket}
 \label{cha:other_socket}
 
-Dopo aver trattato in cap.~\ref{cha:TCP_socket} i socket TCP, che costituiscono
-l'esempio più comune dell'interfaccia dei socket, esamineremo in questo
-capitolo gli altri tipi di socket, a partire dai socket UDP, e i socket
+Dopo aver trattato in cap.~\ref{cha:TCP_socket} i socket TCP, che
+costituiscono l'esempio più comune dell'interfaccia dei socket, esamineremo in
+questo capitolo gli altri tipi di socket, a partire dai socket UDP, e i socket
 \textit{Unix domain} già incontrati in sez.~\ref{sec:ipc_socketpair}.
 
 
 \textit{Unix domain} già incontrati in sez.~\ref{sec:ipc_socketpair}.
 
 
@@ -54,7 +55,7 @@ utilizzando per il tipo di socket il valore \const{SOCK\_DGRAM}.
 Questa differenza comporta ovviamente che anche le modalità con cui si usano i
 socket UDP sono completamente diverse rispetto ai socket TCP, ed in
 particolare non esistendo il concetto di connessione non esiste il meccanismo
 Questa differenza comporta ovviamente che anche le modalità con cui si usano i
 socket UDP sono completamente diverse rispetto ai socket TCP, ed in
 particolare non esistendo il concetto di connessione non esiste il meccanismo
-del \itindex{three~way~handshake}\textit{three way handshake} né quello degli
+del \itindex{three~way~handshake} \textit{three way handshake} né quello degli
 stati del protocollo. In realtà tutto quello che avviene nella comunicazione
 attraverso dei socket UDP è la trasmissione di un pacchetto da un client ad un
 server o viceversa, secondo lo schema illustrato in
 stati del protocollo. In realtà tutto quello che avviene nella comunicazione
 attraverso dei socket UDP è la trasmissione di un pacchetto da un client ad un
 server o viceversa, secondo lo schema illustrato in
@@ -263,10 +264,21 @@ comunque il numero di byte letti.
 
 I due argomenti \param{from} e \param{fromlen} sono utilizzati per ottenere
 l'indirizzo del mittente del pacchetto che è stato ricevuto, e devono essere
 
 I due argomenti \param{from} e \param{fromlen} sono utilizzati per ottenere
 l'indirizzo del mittente del pacchetto che è stato ricevuto, e devono essere
-opportunamente inizializzati con i puntatori alle variabili dove la struttura
-contenente quest'ultimo e la relativa lunghezza saranno scritti (si noti che
-\param{fromlen} è un valore intero ottenuto come
-\itindex{value~result~argument}\textit{value result argument}).  Se non si è
+opportunamente inizializzati; il primo deve contenere il puntatore alla
+struttura (di tipo \ctyp{sockaddr}) che conterrà l'indirizzo e il secondo il
+puntatore alla variabile con la dimensione di detta struttura. Si tenga
+presente che mentre il contenuto della struttura \ctyp{sockaddr} cui punta
+\param{from} può essere qualunque, la variabile puntata da \param{fromlen}
+deve essere opportunamente inizializzata a \code{sizeof(sockaddr)},
+assicurandosi che la dimensione sia sufficiente a contenere tutti i dati
+dell'indirizzo.\footnote{si ricordi che \ctyp{sockaddr} è un tipo generico che
+  serve ad indicare la struttura corrispondente allo specifico tipo di
+  indirizzo richiesto, il valore di \param{fromlen} pone un limite alla
+  quantità di dati che verranno scritti sulla struttura puntata da
+  \param{from} e se è insufficiente l'indirizzo risulterà corrotto.}  Al
+ritorno della funzione si otterranno i dati dell'indirizzo e la sua effettiva
+lunghezza, (si noti che \param{fromlen} è un valore intero ottenuto come
+\itindex{value~result~argument} \textit{value result argument}).  Se non si è
 interessati a questa informazione, entrambi gli argomenti devono essere
 inizializzati al valore \const{NULL}.
 
 interessati a questa informazione, entrambi gli argomenti devono essere
 inizializzati al valore \const{NULL}.
 
@@ -784,14 +796,12 @@ stack dei protocolli.
 \label{sec:packet_socket}
 
 
 \label{sec:packet_socket}
 
 
+% articoli interessanti:
+% http://www.linuxjournal.com/article/5617
+% http://www.linuxjournal.com/article/4659
+% 
 
 
 
 
-
-%%% Local Variables: 
-%%% mode: latex
-%%% TeX-master: "gapil"
-%%% End: 
-
 % LocalWords:  socket cap TCP UDP domain sez NFS DNS stream datagram PF INET to
 % LocalWords:  IPv tab SOCK DGRAM three way handshake client fig bind listen AF
 % LocalWords:  accept recvfrom sendto connect netstat named DHCP kernel ICMP CR
 % LocalWords:  socket cap TCP UDP domain sez NFS DNS stream datagram PF INET to
 % LocalWords:  IPv tab SOCK DGRAM three way handshake client fig bind listen AF
 % LocalWords:  accept recvfrom sendto connect netstat named DHCP kernel ICMP CR
@@ -803,4 +813,11 @@ stack dei protocolli.
 % LocalWords:  ECONNREFUSED value result argument close shutdown daytime nell'
 % LocalWords:  memset inet pton nread NUL superdemone inetd sniffer daytimed
 % LocalWords:  INADDR ANY addr echo ClientEcho sendbuff serv VPN tcpdump l'I
 % LocalWords:  ECONNREFUSED value result argument close shutdown daytime nell'
 % LocalWords:  memset inet pton nread NUL superdemone inetd sniffer daytimed
 % LocalWords:  INADDR ANY addr echo ClientEcho sendbuff serv VPN tcpdump l'I
-% LocalWords:  Stevens destination descriptor raw stack netlink
+% LocalWords:  Stevens destination descriptor raw stack netlink packet
+
+
+
+%%% Local Variables: 
+%%% mode: latex
+%%% TeX-master: "gapil"
+%%% End: