My ServerSocket
записывает следующие строки:
OutputStreamWriter outstream = new OutputStreamWriter(clientSocket.getOutputStream());
BufferedWriter out = new BufferedWriter(outstream);
out.write("Hello");
out.newLine();
out.write("People");
out.flush();
И мой клиент читает это так:
in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
while(true){
line = in.readLine();
if(line == null){
ClientDialog.gui.log.append("NULL LINE\r\n");
} else{
ClientDialog.gui.log.append(line+"\r\n");
}
if(in.readLine() == "SHUTDOWN"){
break;
}
}
Как видите, я пишу "Hello", aновая строка, а затем «People» в сокете, но когда я запускаю свой клиент, он только печатает «Hello» и повторно null.Я не вижу, что не так?
РЕШЕНА ПРОБЛЕМА:
Мне пришлось добавить out.newLine()
после того, как я написал «People» в сокети я должен был сделать line == "SHUTDOWN"
не in.readLine() == "SHUTDOWN"
, поскольку in.readLine()
потреблял "People".
Также было рекомендовано использовать метод equals()
в классе String
вместо==
.
Спасибо!
Это для будущих зрителей.