Я знаю, что есть хороший вариант использования объекта Scanner
, когда вам нужно получить данные с сервера во время соединения. Но у меня есть вопрос по поводу следующего фрагмента кода:
public void sendMessage(String message) {
try {
OutputStream os = socket.getOutputStream();
try {
byte[] buffer;
buffer = message.getBytes();
os.write(buffer);
} finally {
os.close();
}
InputStream is = socket.getInputStream();
try {
StringBuffer data = new StringBuffer();
Scanner in = new Scanner(is);
while (in.hasNext()) {
data.append(in.next());
}
System.out.println(data.toString());
} finally {
is.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
Меня смущает фрагмент, где Scanner
получает данные от InputStream
, потому что он запускается сразу после отправки сообщения на сервер. Справедливо ли предположить, что данные с Сервера не будут в InputStream
сразу после отправки ему сообщения?
Пожалуйста, дайте мне совет, как лучше всего сделать чтение данных из InputStream
в таком случае и что я должен принять во внимание?