Я использую метод 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
блокируется? Как сервер обычно сигнализирует о достижении конца потока? Спасибо.