Quando viene creata, la classe
PensieriSrvThread crea un processo in ascolto sulla porta 4445, tramite il quale il server comunica con i client.

Il costruttore apre un oggetto
BufferedReader sul file
Pensierini.txt che contiene un elenco di Pensieri, di proverbi o di consigli, uno per riga.
Il metodo
run contiene un ciclo while che si interrompe solo quando non ci sono più linee da leggere dal file.
Ad ogni ciclo, il thread aspetta che giunga un
DatagramPacket sul
DatagramSocket. In risposta alla richiesta del client,
PensieriSrvThread preleva una linea dal file, la inserisce in un DatagramPacket e la manda tramite il DatagramSocket al client che l’aveva richiesta.
La linea 23 crea un array di byte che serve a creare il DatagramPacket ricevuto dal socket.
L’istruzione 25 lascia il programma in attesa di ricevere un pacchetto.
A questo punto si supponga che il server abbia ricevuto una richiesta dal un client.
La risposta viene formata nelle linee 26-36. Se il file non è aperto, il server invia la data del giorno.
Altrimenti viene prelevato il prossimo messaggio dal file, convertito in array di byte e inviato al client, dopo che è stato estratto l’indirizzo e la porta dal pacchetto ricevuto.
Il costruttore del datagramma (linea 35) richiede 4 argomenti. Il primo è un array di byte contenente il messaggio spedito,
il secondo parametro è la lunghezza dell’array, Il terzo argomento è l’indirizzo IP e il quarto argomento è il numero del port.
Il ciclo while termina quando sono stati letti tutti i messaggi dal file.