J'ai un serveur qui s'arrête au bout de 45 secondes s'il n'a pas reçu une demande complète et ferme la connexion. Je me connecte à ce serveur par le biais d'un Socket
et écrire ma requête dans le fichier OutputStream
.
Socket socket = new Socket("myhost", myPort);
PrintWriter out = new PrintWriter(socket.getOutputStream());
out.write(properRequestMessage);
out.flush();
Je suppose ici que ma demande est bonne (suit mon protocole). Le serveur est censé répondre avec un fichier. J'essaie de lire depuis le socket inputstream :
BufferedReader response = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String in;
while((in = response.readLine()) != null) {
System.out.println(in);
}
Le site readLine()
se bloque ici et je pense que c'est parce que mon serveur pense que ma demande n'est pas correctement terminée et qu'il en attend donc d'autres.
Maintenant, si 45 secondes s'écoulent et que mon serveur s'arrête, est-ce que les readLine()
débloquer ou attendre que certains Socket
le délai d'attente par défaut ?