Sei sulla pagina 1di 1

sockets Tutorial

(Questa una traduzione dell'articolo originale )


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.