Ciao a tutti,
sto realizzando un'applicazione client/server in cui il server manda dei messaggi al client, il quale deve rispondere immettendo dei dati in input.
Il problema sorge quando devo stampare i messaggi con il server, questo è il codice del mio server:
Adesso quando faccio out.println("Vuoi continuare? (Y/N)"); mi stampa il messaggio su una riga sola, in modo corretto.codice:package server1; import java.io.*; import java.net.*; import java.util.Scanner; public class Server1 { public Server1(int port) { this.port=port; } public void startServer() throws IOException { //PASSO 1:APRO PORTA TCP servSock=new ServerSocket(port); System.out.println("Server pronto sulla porta: "+port); //PASSO 2:ATTESA DELLA CONNESSIONE Socket sock=servSock.accept(); System.out.println("Connessione con il client stabilita"); //PASSO 3:APRO STREAM PER FARE I/O Scanner in=new Scanner(sock.getInputStream()); PrintWriter out=new PrintWriter(sock.getOutputStream()); //PASSO 4:FACCIO LA LETTURA E SCRITTURA NELLA CONNESSIONE out.println("Vuoi continuare? (Y/N)"); out.flush(); String line=in.nextLine(); if(line.equals("Y")) { while(true) { if(line.equals("N")) { break; }else if(line.equals("Y")){ out.println("Immetti q"); out.flush(); String q=in.next(); out.println("q="+q); out.flush(); } out.println("Vuoi continuare? (Y/N)"); out.flush(); line=in.nextLine(); } } //PASSO 5:CHIUDO STREAM E SOCKET System.out.println("Chiusura della connessione"); in.close(); out.close(); sock.close(); servSock.close(); System.out.println("Connessione chiusa"); } private int port; private ServerSocket servSock; }
Entrato nell'if, quindi nel ciclo while, le restanti out.println(); , mi vengono spezzate su più righe, ovvero esso stampa: Immetti, poi premendo invio mi stampa una riga vuota, poi premendo nuovamente invio mi stampa q, invece dovrebbe stampare come dato dalla out, direttamente "Immetti q" su un'unica riga.
Non riesco a capire dove possa essere l'errore.
Grazie a tutti per l'aiuto!