Questo un semplice tutorial su l'utilizzo dei socket per la comunicazione fra processi. Il modello client server molte comunicazioni fra processi utilizzano il modello client server. Questo termine si riferisce a 2 processi che vogliono comunicare l'uno con l'altro. Uno dei due processi, il client si connette all'altro processo il server, solitamente per richiedere delle informazioni. Una buona analogia una persona che chiama telefonicamente un'altra persona. Tieni presente che il client deve essere a conoscenza dell'esistenza e dell'indirizzo del server, ma il server non deve conoscere l'indirizzo del client prima che la connessione venga stabilita. Tieni presente che una volta che la connessione stabilita entrambi i lati possono inviare e ricevere informazioni. Le chiamate a sistema per stabilire una connessione avvolte differiscono fra il client ed il server, ma entrambi utilizzano i costrutti di base del socket. Un socket un terminale del canale di comunicazione fra processi. I due processi devono avere il proprio socket per stabilire la connessione. I passi per creare una connessione con i socket nel lato client sono i seguenti: 1. creare un socket con la chiamata al sistema socket() 2. connettere il socket all'indirizzo del server usando la chiamata al sistema connect() 3. Inviare e Ricevere dati. ci sono molteplici modi per fare questo, ma il pi semplice quello di utilizzare le chiamate al sistema read() e write() I passi per creare una connessione con i socket lato server sono i seguenti: 1. creare un socket con la chiamata al sistema socket() 2. legare il socket ad un indirizzo utilizzando la chiamata al sistema bind(). Per un socket lato server in internet, un indirizzo costituito da un numero di porta nella macchina host 3. mettersi in ascolto per la connessione con la chiamata al sistema listen() 4. accettare una connessione con la chiamata a sistema accept(). questa chiamata normalmente blocca il processo finch un client si connette col server 5. inviare e ricevere dati Tipi di socket Quando un socket viene creato, il programma deve specificare l'indirizzo di dominio e il tipo di socket. 2 processi possono comunicare fra loro solo se i loro socket sono dello stesso tipo e stanno nello stesso dominio Ci sono 2 indirizzi di dominio ampiamente utilizzati, il dominio unix, in cui comunicano 2 processi che condividono lo stesso file system, e il dominio internet, in cui comunicano 2 processi che girano in 2 qualsiasi host nella rete. Ognuno di essi possiede il proprio formato di indirizzo.