Completato server elementare.
[gapil.git] / socket.tex
index 786ed5538de8addad5d3a9057a96ae17a20c83d0..4cc999d34818865533ddcab50e8c2cadb0ca500f 100644 (file)
@@ -1,12 +1,16 @@
 \chapter{Socket}
 \label{cha:socket}
 
 \chapter{Socket}
 \label{cha:socket}
 
-I \textit{socket} sono usati come meccanismo di comunicazione fra programmi
-utilizzato in ambito unix (e non solo). La creazione di un socket restituisce
-un file descriptor analogo a quello di una pipe ma a differenza di questa e
-degli altri meccanismi esaminati nel capitolo \ref{cha:ipc} i socket non sono
-limitati alla comunicazione fra processi che girano sulla stessa macchina ma
-possono effettuare la comunicazione anche attraverso la rete.
+Il \textit{socket} (traducibile liberamente come \textsl{manicotto}) è uno dei
+principali meccanismi di comunicazione fra programmi utilizzato in ambito unix
+(e non solo). Il socket costituisce in sostanza un canale di comunicazione fra
+due processi su cui si possono leggere e scrivere dati. 
+
+La creazione di un socket restituisce un file descriptor con un comportamento
+analogo a quello di una pipe ma a differenza di questa e degli altri
+meccanismi esaminati nel capitolo \ref{cha:ipc} i socket non sono limitati
+alla comunicazione fra processi che girano sulla stessa macchina ma possono
+effettuare la comunicazione anche attraverso la rete.
 
 I socket infatti sono la principale API (\textit{Application Program
   Interface}) usata nella programmazione di rete. La loro origine risale al
 
 I socket infatti sono la principale API (\textit{Application Program
   Interface}) usata nella programmazione di rete. La loro origine risale al
@@ -14,9 +18,14 @@ I socket infatti sono la principale API (\textit{Application Program
 sostanzialmente la stessa con piccole modifiche negli anni successivi. Benché
 siano state sviluppate interfacce alternative, originate dai sistemi SYSV,
 come la XTI (\textit{X/Open Transport Interface}) nessuna ha mai raggiunto la
 sostanzialmente la stessa con piccole modifiche negli anni successivi. Benché
 siano state sviluppate interfacce alternative, originate dai sistemi SYSV,
 come la XTI (\textit{X/Open Transport Interface}) nessuna ha mai raggiunto la
-diffusione e la popolarità di quella dei socket (e tantomeno usabilità e
+diffusione e la popolarità di quella dei socket ( tantomeno usabilità e
 flessibilità).
 
 flessibilità).
 
+La flessibilità e la genericità dell'interfaccia inoltre ha consentito di
+utilizzare i socket con i più disparati meccanismi di comunicazione, e non
+solo con la suite dei protocolli TCP/IP, che sarà comunque quella di cui
+tratteremo in maniera più estesa.
+
 
 \section{Concetti base}
 \label{sec:sock_gen}
 
 \section{Concetti base}
 \label{sec:sock_gen}
@@ -61,11 +70,11 @@ tipi di socket, che vengono classificati raggruppandoli in quelli che si
 chiamano \textsl{domini} (\textit{domains}).  La scelta di un dominio equivale
 in sostanza alla scelta di una famiglia di protocolli. Ciascun dominio ha un
 suo nome simbolico che convenzionalmente inizia con \texttt{PF\_} (da
 chiamano \textsl{domini} (\textit{domains}).  La scelta di un dominio equivale
 in sostanza alla scelta di una famiglia di protocolli. Ciascun dominio ha un
 suo nome simbolico che convenzionalmente inizia con \texttt{PF\_} (da
-\textit{protocol family}, altro nome con cui si indicano i domini). 
+\textit{Protocol Family}, altro nome con cui si indicano i domini). 
 
 A ciascun tipo di dominio corrisponde un analogo nome simbolico che inizia per
 
 A ciascun tipo di dominio corrisponde un analogo nome simbolico che inizia per
-\texttt{AF\_} (da \textit{Address Family}, nome che useremo anche noi; le man
-pages di linux si riferiscono a questi anche come \textit{name space}, nome
+\texttt{AF\_} da \textit{Address Family}, nome che useremo anche noi; le man
+pages di linux si riferiscono a questi anche come \textit{name space}, (nome
 che però il manuale della glibc riserva ai domini) e che identifica il formato
 degli indirizzi usati in quel dominio.
 
 che però il manuale della glibc riserva ai domini) e che identifica il formato
 degli indirizzi usati in quel dominio.
 
@@ -92,7 +101,6 @@ riportate in \ntab.
   \label{tab:net_pf_names}
 \end{table}
 
   \label{tab:net_pf_names}
 \end{table}
 
-
 La scelta di un dominio non comporta però la scelta dello stile di
 comunicazione, questo infatti viene a dipendere dal protocollo che si andrà ad
 utilizzare fra quelli disponibili nella famiglia scelta. Le API permettono di
 La scelta di un dominio non comporta però la scelta dello stile di
 comunicazione, questo infatti viene a dipendere dal protocollo che si andrà ad
 utilizzare fra quelli disponibili nella famiglia scelta. Le API permettono di