<< Chapter < Page Chapter >> Page >

Il modello client-server e i socket

Un processo server attende le eventuali connessioni di processiclient. Quando la connessione viene stabilita, il server esegue dei compiti in base a quanto ricevuto dal client e poi,di solito, la connessione viene interrotta. La comunicazione tra client e server deve essere affidabile.La programmazione della comunicazione mediante TCP/IP viene di solito effettuata mediante l'interfaccia socket BSD,introdotta da UNIX 4.2BSD. E', di fatto, una forma di Inter-Process Communication che si aggiunge alle altre formedi comunicazione tra processi di UNIX (pipe, shared memory, signals, message queues, semaphores) con la peculiarità diconsentire la comunicazione tra macchine diverse fornite di indirizzo IP.
Socket
è uno dei due terminali di una connessione bidirezionale tra due processi in esecuzione sumacchine collegate ad una rete.
Java fornisce una suite di classi che consentono di stabilire delle connessioni mediante socket in modo indipendente dallaparticolare realizzazione dei socket da parte del sistema operativo sottostante. In Java, le classi Socket eServerSocket vengono usate per stabilire la connessione rispettivamente dal lato client e dal lato server.La comunicazione client-server mediante socket avviene come segue:
CLIENT - SERVER
conosce hostname e port number del server - ascolta il socket
richiede la connessione al server accetta la connessione
crea un socket e lo usa per comunicare con il server ottiene un nuovo socket su un port differente
- continua ad ascoltare il socket originario

Il modello message passing

Il protocollo di trasmissione UDP realizza di fatto un modellodi comunicazione di tipo message passing con ricezione bloccante e invio non bloccante. Quindi i due partnercomunicano con una forma di rendez vous "lasco". E' demandato al programmatore il compito di assicurare la correttaricezione dei messaggi ( datagram ) se essa è importante per l'applicazione.
Datagram
è un messaggio la cui trasmissione in rete non assicura l'effettiva ricezione, iltempo di arrivo, e l'integrita' del contenuto.
La comunicazione in UDP avviene mediante indirizzamento indiretto di tipo molti a uno: la primitiva send indirizza ilproprio messaggio ad uno specifico identificatore del port (che gioca il ruolo di una mailbox) di accesso al processodestinazione (hostname e port). Il processo destinazione conosce l'identità del processo sorgente mediante hostname eport specificati in testa al messaggio. Mediante UDP, è anche possibile che molti client si mettano inascolto di messaggi inviati (broadcast) da un processo server. Questa è una comunicazione di tipo message passing unoa molti. In Java, le classi DatagramSocket e DatagramPacket consentonodi confezionare dei messaggi e di spedirli e riceverli attraverso socket di tipo UDP. La classe MulticastSocketconsente ad un client di associarsi al gruppo di client che possono ricevere il broadcast e di ricevere in modo passivo imessaggi inviati dal server.

Comunicazione client-server in processing

Tra le core libraries di Processing, la Network consente di creare client e server.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Programmazione di artefatti interattivi. OpenStax CNX. Dec 09, 2010 Download for free at http://cnx.org/content/col10417/1.9
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Programmazione di artefatti interattivi' conversation and receive update notifications?

Ask