Sockets: BufferedReader readLine () blocs

Je suis en utilisant BufferedReader.readLine() méthode pour lire une réponse à partir d'un serveur distant (qui est écrit en C et je n'ai pas accès au code source).

BufferedReader br = new BufferedReader(new InputStreamReader(in));
String line;
while((line = br.readLine())!=null){
    [...]
}

Mais il y a toujours des blocs à la dernière ligne, jusqu'à ce qu'il expire. J'ai donc utilisé le code suivant:

int b;
while(true){
   b = in.read;
   [...]
}

et j'ai trouvé que le dernier octet lu est une valeur entière de 13 ans, qui, je pense, c'est un retour chariot, droit?

Alors pourquoi le readLine méthode des blocs? Comment le serveur, généralement le signal de la fin du flux est atteinte? Merci.

source d'informationauteur neo