Server - Gaia-Barberio-Peano-5Ci/ChatClientServer GitHub Wiki
DESCRIZIONE SERVER
La composizione della cartella ChatServer è la seguente:
- ChatServer: contiene il metodo principale
- GUI (GraphicalUser Interface)
- ClientServer: serve per la connessione tra client e server
Il server è in grado di ascoltare nella porta UDP-Echo specifica, assegnata a 7777, grazie a DatagramSocket che è una tipologia di socket che utilizza una connessione basata sul protocollo UDP. Ciò significa che l’invio dei dati avviene mediante il trasferimento di piccoli datagrammi, senza garantire il corretto ordine d’arrivo e la correttezza dell’informazione. Il client e il server non instaurano una vera a propria connessione, ma il client comunica direttamente con il server, quando vuole.
Con DatagramSocket nomeSocket = new DatagramSocket(numeroPorta)
si crea un socket in ascolto sulla porta indicata.
Il server è in grado di inviare messaggi, grazie a DatagramPacket. In effetti, tali pacchetti possono memorizzare il socket di ricezione (IP e porta). Pertanto, DatagramSocket sa dove inoltrare quel pacchetto.
Inoltre DatagramPacket nomeDatagramPacket = new DatagramPacket(buffer, buffer.length)
crea un pacchetto con i buffer che abbiamo precedentemente creato utilizzando il codice byte[] buffer = new byte[1024]
.
Per ricevere il pacchetto in arrivo dal client si utilizza server.receive(nomeDatagramPacket)
.
I comandi nomeDatagrampacket.getAddress()
e nomeDatagrampacket.getPort()
permettono di risalire all'indirizzo IP e alla porta con i quali il pacchetto è stato inviato, quindi permettono di scoprire il mittente del messaggio in arrivo.