Creare un server Java utilizzando i Socket che permetta di leggere dati da un file csv
Usiamo un protocollo TCP con porta 12345
-
Server:
Legge i dati del CSV.
Permette di avere più Client online grazie all'estensione "Thread",
Risponde ai comandi GET_ROW, GET_DATE e GET_ALL: la prima funzione restituisce una riga del codice CSV in base a quello che vuole l'utente, mentre GET_DATE in base all'inserimento di una data in formato: yyyy-mm-dd; mentre l'ultima funzione GET_ALL restituisce tutti i dati.
L'interruzione del server è pulita.
-
Client:
Si connette al server in base ad una porta preimpostata.
Multithreaded.
Supporta il comando EXIT per terminare la connesione.
Errori di connessione: Se il server non è raggiungibile, il client mostra un messaggio di errore.
Se un comando è malformato, il server risponde con ERROR: "descrizione".
Non gestiti esplicitamente, ma il client può riconnettersi manualmente.
-
Server multithread: Ogni client viene gestito in un thread separato (ClientHandler), permettendo connessioni multiple.
-
Client sincrono: Il client attende una risposta prima di inviare un nuovo comando (modello richiesta-risposta).
- Caricamento in memoria: I dati del CSV (ps2023minmax.csv) vengono caricati all'avvio in una List<String[]>.