ChatUDP - Gianluca-Bozzo-Peano-5C/Chat-UDP GitHub Wiki

Descrizione esperienza

L'obbiettivo di questa esperienza di laboratorio è creare una chat formata da diversi client che comunicano tramite l'utilizzo di un server. I progetti da me utilizzati sono stati presi dal progetto del prof Palitto. Il progetto iniziale è cosi strutturato:

Server formato dalle classi : ServerUDPEcho e UDPEcho;

Client formato dalle classi : ChatUDPClient,ReceiveFromServerAndPrint SendUserInputToServer;

Socket

Un socket è l'insieme di un indirizzo IP e di una Porta.

Progetto

Nel Server:

Nel progetto creiamo un socket tramite la riga di codice DatagramSocket nomeSocket = new DatagramSocket(numeroPorta). In numero porta inseriamo la porta che vogliamo utilizzare.Le porte da 0 a 1023 sono private, quindi la prima porta disponibile è la 1024; Il protocollo UDP utilizza la porta privata 7. Dopo di che creiamo un DatagramPacket per contenere i messaggi tramite il comando DatagramPacket nomeDatagramPacket = new DatagramPacket(buffer, buffer.length) passando il buffer come parametro per stabilirne la grandezza. Per creare un buffer si utilizza il seguente codice byte[] b = new byte[8192]. Nella parentesi quadra si inserisce la grandezza che vogliamo il nostro buffer assuma (la cifra massima è 8192).

Nel Client:

Nel client invece utilizziamo un socket. A cui viene specificato l'indirizzo ip e il numero della porta del nostro server che è in ascolto. Per creare un socket si utilizza la seguente riga di codice DatagramSocket socket;. Il DatagramSocket è un canale di comunicazione utilizzato per permettere a due applicazioni di comunicare. Ora si creano due classi chiamate SendUserInputToServer e ReceiveFromServerAndPrint. Queste due classi sono dei thread che vengono utilizzate dal client per, rispettivamente, inviare e ricevere messaggi.Ho aggiunto anche un'interfaccia grafica, come richiesto dall'esercizio.