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