Я использую метод BufferedReader.readLine ()
для чтения ответа с удаленного сервера (который написан на C, и у меня нет доступа к исходному коду ).
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String line;
while((line = br.readLine())!=null){
[...]
}
Но он всегда блокирует последнюю строку, пока не истечет время ожидания. Поэтому я использовал следующий код:
int b;
while(true){
b = in.read;
[...]
}
и обнаружил, что последний прочитанный байт имеет целочисленное значение 13, Я думаю, это возврат каретки, верно?
Так почему же метод readLine
блокируется? Как сервер обычно сигнализирует о достижении конца потока? Спасибо.