Мой вопрос будет следующим. Является ли оператор in.readLine () ожидающим ввода?
Да, это «ожидание ввода», поскольку .readLine()
является блокировкой метод
Если это не так, не должен Программа выдает ошибки при использовании str, поскольку она не имеет значения?
Я не могу разобрать это - утверждение не имеет смысла. Какую ошибку / исключение вы ожидаете?
Или в общих чертах, Socket специфицирует c функции, такие как Socket so c = serverSocket.accept (); или, как в приведенном выше примере, чтение InputStream "ждет" сигнала вообще?
Опять же, я боюсь, что это не слишком ясно (по крайней мере, для меня). ServerSocket#accept()
является методом блокировки и будет ожидать подключения к сокету, если это то, о чем вы просите.
Обратите внимание, что этот код:
while(true) {
String str = in.readLine();
}
, хотя он действителен, не будет особенно полезен, поскольку вы читаете строку, а затем отбрасываете ее, ничего не делая с ней. Лучше либо напечатать полученную строку, либо передать ее в метод, где она может быть использована каким-либо образом. С другой стороны, я полагаю, что это может быть полезно, если все, что вам нужно, - это «поглотить» поток, чтобы предотвратить переполнение буферов ОС.