Ma_fack
Ominide
2 min. di lettura
Vota 4 / 5

Concetti Chiave

  • Una "Association" è composta da una quintupla che include protocollo, indirizzo e processo locali e remoti.
  • I due elementi locali e remoti formano rispettivamente una mezza Association, insieme definite come Socket.
  • I Socket sono il meccanismo tramite cui le applicazioni inviano e ricevono dati in rete.
  • Per sviluppare applicazioni Client-Server in Java, è necessario importare il package Java.net.
  • La comunicazione può essere Unicast per singoli client o Multicast per più client contemporaneamente.

Association

Ora recuperiamo un concetto introdotto poco sopra ossia quello di Porta o Port Address. Una porta serve a farsi identificare dal TCP/IP per poi procedere alla trasmissione dati. Tuttavia il numero della porta non è in grado di descrivere una connessione quindi si ricorre alla seguente quintupla, definita “Association”, composta da:
- Protocollo = ad esempio il TCP;
- Indirizzo Locale = ossia l’indirizzo IP del computer mittente;
- Processo Locale = corrispondente alla porta del processo locale;
- Indirizzo Remoto = ossia l’indirizzo IP del computer destinatario;
- Processo Remoto = porta del processo remoto;
I due elementi “locale” formano una mezza Association mentre i “remoto” ne formano un’altra. Insieme, queste due Half Association decidono un protocollo da utilizzare per scambiarsi i dati. Queste due Half Association sono anche dette Socket, ossia quel meccanismo attraverso il quale un’applicazione invia e riceve dati tramite rete.

Per creare in Java delle applicazioni che si basano su di una struttura Client-Server si deve importare necessariamente il package Java.net che contiene tutte quelle definizioni di classe utili allo sviluppo di applicazioni basate su socket.

Nella realizzazione di una nuova applicazione basata su Connection Oriented bisogna prima chiedersi se si vuole comunicare con un solo client alla volta (Unicast) o con più client contemporaneamente (Multicast). Nel primo caso il server accetterà una richiesta solamente se non c’è nessun altro client già connesso; se la connessione va a buon fine allora il server accetta la connessione stabilendo il canale di comunicazione con il client che, una volta ricevuta, la conferma e crea un socket su una porta locale in cui trasmettere i pacchetti. Nel caso Multicast se la connessione va a buon fine, il server prima di creare una nuova connessione crea un nuovo socket associato ad una nuova porta a cui cede la gestione del canale di trasmissione con il client.

Domande da interrogazione

  1. Che cos'è un'Association nel contesto del TCP/IP?
  2. Un'Association è una quintupla composta da protocollo, indirizzo locale, processo locale, indirizzo remoto e processo remoto, che identifica una connessione per la trasmissione dati.

  3. Qual è il ruolo del package Java.net nello sviluppo di applicazioni Client-Server in Java?
  4. Il package Java.net contiene le definizioni di classe necessarie per sviluppare applicazioni basate su socket, fondamentali per la comunicazione Client-Server.

  5. Qual è la differenza tra Unicast e Multicast nella comunicazione Connection Oriented?
  6. In Unicast, il server accetta una connessione solo se nessun altro client è connesso, mentre in Multicast il server può gestire più connessioni creando nuovi socket per ogni client.

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community