Skip to content

Progetto Finale per il corso Laboratorio di reti presso il corso di Laurea Triennale in Informatica all'università di Pisa. Studente F. N. . "WORDLE un gioco di parole"

Notifications You must be signed in to change notification settings

Fedenanno/WORDLE_Nannoni

Repository files navigation

WORDLE_Nannoni

Progetto Finale per il corso Laboratorio di reti presso il corso di Laurea Triennale in Informatica all'università di Pisa. Studente F. Nannoni. "WORDLE un gioco di parole"

Funzionamneto:

Server: Richiede come parametri di avvio: -ip ? -porta ? -nome file di parole -nome file per gli utenti

All'avvio il server carica la lista dei player:
    -per ogni player crea un oggetto (User.java) e lo inserisce in una lista tramite FileManager.java.getUserList()
    -seleziona una parola causale dalla lista di parole, tramite FileManager.java.getNewWord()
    -avvia il socker di ascolto per le nuove richieste di connessione.

-getNewWord():
    restituisce una parola casuale, restituendola al chiamante.

-checkWord(String parola):
    Controlla che la parola sia all'interno delle parole permesse, se si, controlla le lettere della parola per restitire un array con i vari indizzi.

ServerWorker: All'avvio richiede all'utente di eseguire il login o di registarsi. Una volta autenticato, cerca nella hash map i dati dell'utente.

-login():
    Richiede all'utente di inserire username e password, viene fatta una ricerca nell'hash map e si controlla la password. se tutto ok, gli vengono mandati i vari comandi che può eseguire.
    Altrimenti viene richiesto di riprovare.

-register():
    Richiede all'utente di inserire username e password, viene fatta una ricerca nell'hash map e si controlla se l'username è già presente. Se non è presente, viene creato un nuovo oggetto User e viene aggiunto alla hashmap.
    Altrimenti viene richiesto di riprovare.

FileManager.java -getUserList(string filename): Carica tutti gli utenti presenti al momento dell'avvio nel file json passato tramite argomento. Creando e restituendo una ArrayList di oggetti di tipo User.

-getWord(string filename):
    Apre il file <filename> legge le parole e le salva in un hashmap

-saveNewUser(User user, String filename):
    Apre il file <filename> in scrittura e aggiunge un nuovo elemento con i dati dell'user.

UDP Multicast Quando avvio il server,

  • creo un gruppo multicast e lo imposto come globale, Aggiunngendoci anche il Server (ok)
  • crea un'arraylist concorrente in cui i client andranno a scrivere le loro statistiche da madare (ok)
  • faccio partire un thread che legge da questa lista e manda i messaggi sul gruppo multicast (ok)

Quando un client si connette

  • controllo che il login sia corretto.
  • se ok restituisce indirizzo e porta UDP del gruppo mutlicast

Quando un client richiede una share su gruppo Multicast

  • il serverWorker aggiunge una nuova stringa con username, alla struttura dati messaggiUDP (in modo che il thread del sermerMain possa leggerlo e inviarlo a tutti)

Quando chiude il server

  • niente, il socker si chiude e tutti i client udp di disconnettono, la struttura dati viene cancellata e fine.

Quando il client parte

  • esegue il login, se ok
  • crea un socket udp
  • crea un thread che ascolta solo da quel socket e salva tutto in una lista
  • quando il client richiede i messaggi share, viene stampata questa lista. (per poi essere cancellata)

About

Progetto Finale per il corso Laboratorio di reti presso il corso di Laurea Triennale in Informatica all'università di Pisa. Studente F. N. . "WORDLE un gioco di parole"

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages