Salve a tutti, ho questo esercizio, e vorrei delle dritte per svolgerlo.. si tratta di realizzare un client e un server:
Simulare il seguente scenario rispettando il protocollo di seguito definito. Un'applicazione server è in grado di indovinare, per test ripetuti, il valore di un numero intero definito da un'applicazione client.
Implementare in Java il seguente protocollo. Il server, in esecuzione sulla porta 18163, riceve
connessioni da client e cerca di stabilire il valore di un numero intero dialogando coi i client nel
seguente modo.
Un client, appena connesso con il server, stabilisce il valore di un numero intero X, visualizza sullo standard output il messaggio “Prova ad indovinare X”, ed invia al server il messaggio INDOVINA. Il server ricevuto il messaggio INDOVINA, tenta ripetutamente di stabilire il valore di X, inviando al client un messaggio “PROVO Y”, dove Y è il valore di un numero intero.
Il client quando riceve un messsaggio “ PROVO Y”, visualizza sullo standard output il messaggio “Il server prova con Y”, ed invia al server una delle seguenti risposte:
– MAGGIORE, se Y è maggiore di X;
– MINORE, se Y è minore di X;
– UGUALE, se Y è uguale ad X.
Il server tiene traccia del massimo minimo MaxMin (estremo inferiore) ed del minimo massimo
MinMax (estremo superiore) per stabilire il prossimo valore di Y da generare. Ad esempio: Valore Risposta MaxMin MinMax
-inf +inf
10 MAGGIORE 10 +inf
25 MAGGIORE 25 +inf
130 MINORE 25 130
77 MINORE 25 77
38 MAGGIORE 28 77
45 UGUALE
Quando il server riceve il messaggio UGUALE, invia al client il messaggio CLOSE.
Quando il client riceve il messaggio CLOSE, visualizza sullo standard output il messaggio
“Esecuzione terminata” e chiude la connessione.
Qualche consiglio? soprattutto per quanto riguarda la comunicazione (come creare le socket tcp so farlo, anche come creare il flusso in ingresso ed in uscita) vorrei sapere se utilizzare un ciclo per questa comunicazione, non è richiesto l'utilizzo dei thread! Attendo risposta!