Home - Gaia-Barberio-Peano-5Ci/ChatClientServer GitHub Wiki

CHAT UDP

Questo progetto comprende la creazione di un'architettura client-server per sviluppare una chat UDP in cui i messaggi vengono inviati a tutti gli host collegati a Echo Server.

Esso è suddiviso in due cartelle: ChatClient e ChatServer.

Per facilitare l'utilizzo della chat a qualunque utente il client e il server usano una GUI (Graphical User Interface) che è un tipo di interfaccia utente che consente l'interazione uomo-macchina in modo visuale utilizzando rappresentazioni grafiche.

La struttura del client è diversa da quella del server, ma hanno alcuni aspetti comuni:

1. UDP Socketing e Packeting

I client hanno bisogno del server per comunicare tra loro, quindi hanno bisogno di un UDPSocket per connettersi e inviare messaggi. I messaggi scritti dall'utente vengono convertiti nel loro formato byte [] (array di byte) per essere inviati in un DatagramPacket.

Il server è il nucleo centrale di questa architettura. Esso trasmette un pacchetto a tutti i client collegati, dando a tutti la possibilità di prendere parte alla conversazione. È necessario un UDPSocket per ascoltare tutte le richieste che possono essere inviate.

Entrambe le cartelle hanno un socket, ma lo usano in modo differente: i client lo usano come metodo per parlare, mentre il server lo utilizza come metodo per ascoltare.

2. Multi-threading e GUI

Grazie all'utilizzo dei thread, i client possono ascoltare e parlare allo stesso tempo, mentre il server può comunicare facilmente con ciascuno di essi perché ogni richiesta viene elaborata come thread. Per controllare ogni parte di UDPChat, entrambi i programmi utilizzano una GUI, che consente agli utenti di sapere di cosa hanno bisogno, senza causare alcun errore nel codice.