J'ai un problème avec une bibliothèque que j'utilise. C'est peut-être la bibliothèque ou c'est peut-être moi qui l'utilise mal!
En gros, quand je fais cela (Timeout en millisecondes)
_ignitedHttp.setConnectionTimeout(1); // v short
_ignitedHttp.setSocketTimeout(60000); // 60 seconds
Aucune exception de délai d'attente n'est générée et cela fonctionne bien, cependant, lorsque je fais ce qui suit,
_ignitedHttp.setConnectionTimeout(60000); // 60 seconds
_ignitedHttp.setSocketTimeout(1); // v short
J'obtiens une exception de socket.
Alors, ma question est pourquoi ne puis-je pas simuler une exception de connexion? Suis-je mal compris la différence entre un socket et un délai de connexion? La bibliothèque est ici (pas encore officiellement publiée).
la source
Un délai de connexion est la durée maximale que le programme est prêt à attendre pour établir une connexion à un autre processus. Vous n'obtenez ni ne publiez aucune donnée d'application à ce stade, vous établissez simplement la connexion elle-même.
Un timeout de socket est le délai d'attente lors de l'attente de paquets individuels. C'est une idée fausse courante qu'un délai d'expiration de socket est le délai pour recevoir la réponse complète. Donc, si vous avez un timeout de socket de 1 seconde et une réponse composée de 3 paquets IP, où chaque paquet de réponse prend 0,9 seconde pour arriver, pour un temps de réponse total de 2,7 secondes, alors il n'y aura pas de timeout.
la source