Un semplice esempio di comunicazione client-server
Giovedì, Novembre 22nd, 2007La modalità con cui due processi applicativi comunicano (in una connessione di tipo connection oriented) è in linea di massima la seguente:
1. il server tramite una funzione socket, una funzione bind ed una funzione listen, si mette in ascolto in modalità passiva in attesa che qualcuno lo contatti;
2. il client, tramite una funzione di socket e una funzone di connect riesce a mettersi in contatto col server desiderato;
3. da questo momento inizia lo scambio dati tramite le funzioni send e recv.
Lo schema da seguire (per un banalissimo scambio di un paio di numeri) è riportato, in linguaggio C, nei seguenti due listati, uno relativo al server e l’altro al client.
LISTATO SERVER
LISTATO CLIENT
Allego, relativamente ai due precedenti, anche i file eseguibili che permettono poi lo scambio effettivo dei dati (non tutti avete un compilatore C che vi permette di ottenere l’eseguibile dai listati precedenti).
FILE ESEGUIBILE SERVER
FILE ESEGUIBILE CLIENT
Procedete nel seguente modo:
1. Salvate i due file nell’unità C:, in modo che venga semplice ricordare il loro path;
2. Aprite il prompt dei comandi e riportatevi a C: tramite uso ripetuto del comando “cd..”;
3. Digitate server.exe;
4. Senza chiudere la precedente finestra, riaprite il prompt, rieseguite i passi prededenti e, giunti a C:, digitate client.exe 127.0.0.1 (questo indirizzo indica che i due processi risiedono nella stessa macchina).
A questo punto parte la lettura e la stampa di un paio di numeri.
Ovviamente, dai listati, è semplice creare altre funzioni tra i due processi, basta solo qualche conoscenza di linguaggio C.



