Java- L'invio di input dell'utente a un server

voti
0

Sto simulando una semplice chat con la creazione di un rapporto di client e server. Sto solo utilizzando l'IDE Netbeans per eseguire questo. Quando l'utente preme Invio, quello che digitate nella console IDE viene inviato al server e quindi eco indietro.

console = new BufferedReader(new InputStreamReader(System.in));    

while (thread != null) {  
    try {  
        streamOut.writeUTF(console.readLine());
        streamOut.flush();
    } catch(IOException ioe){  
        System.out.println(Sending error:  + ioe.getMessage());
        stop();
    }
}

Sto cercando di creare un sistema di login / registro in cui l'utente viene chiesto di inserire username e password. Voglio il programma per sospendere l'esecuzione fino a quando viene premuto il tasto Invio. Quello che ho attualmente sta tagliando fuori il primo carattere da ciò che viene immesso per nome utente

System.out.println(Type 1 if you are an existing user \nType 2 if you want to register);
System.in.read();
System.out.println(Username:);
System.in.read();
System.out.println(Password:);

Esempio di output

Connected: Socket[addr=/127.0.0.1,port=10233,localport=52932]
Type 1 if you are an existing user 
Type 2 if you want to register
2
Username:
foo
Password:
52932: oo
bar
52932: bar
È pubblicato 05/12/2017 alle 00:08
dall'utente
In altre lingue...                            


1 risposte

voti
1

Vorrei fare questo con un BufferedReader.

Qualcosa come questo:

BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Username: ");
String username = reader.readLine();
System.out.print("Password: ");
String password = reader.readLine();

Si prega di notare, è cattiva pratica di inviare le password in testo normale e per memorizzarli in oggetti String. Un utente malintenzionato potrebbe essere in grado di fiutare il nome utente e la password di testo normale senza più problemi e non v'è la possibilità che i dati della stringa è stato possibile leggere prima che venga distrutta.

Risposto il 05/12/2017 a 00:46
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more