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.