I am using BufferedReader.readLine()
method to read a response from a remote server (which is written in C and I have no access to source code).
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String line;
while((line = br.readLine())!=null){
[...]
}
But it always blocks at the last line until it times out. So I used the following code:
int b;
while(true){
b = in.read;
[...]
}
and I found out that the last byte read has an integer value of 13, which I think it is a carriage return, right?
So why the readLine
method blocks? How does the server usually signal an end of stream is reached? Thanks.