ConnectionTimeout contre SocketTimeout
Je vais avoir un problème avec une bibliothèque que j'utilise. Il pourrait être la bibliothèque ou il pourrait être que je l'utilise mal!
En gros, quand je le fais (Timeout en millisecondes)
_ignitedHttp.setConnectionTimeout(1); //v short
_ignitedHttp.setSocketTimeout(60000); //60 seconds
Pas de délai d'attente exception est générée et cela fonctionne bien, cependant, quand je fais la suite,
_ignitedHttp.setConnectionTimeout(60000); //60 seconds
_ignitedHttp.setSocketTimeout(1); //v short
- Je obtenir une Prise d'Exception.
Donc, ma question est pourquoi je ne peux pas simuler une Connexion Exception? Suis-je l'incompréhension de la différence entre une prise et un délai de connexion? La bibliothèque est ici (pas encore officiellement publiés).
Vous devez vous connecter pour publier un commentaire.
Un délai d'attente de connexion se produit uniquement lors du lancement de la connexion TCP. Cela se produit généralement si l'ordinateur distant ne répond pas. Cela signifie que le serveur a été arrêté, vous avez utilisé la mauvaise adresse IP/nom DNS, port incorrect ou la connexion réseau au serveur est down.
Un délai d'attente du socket est dédié à surveiller en continu l'entrant de flux de données. Si le flux de données est interrompue pendant le délai spécifié, la connexion est considérée comme bloqué ou cassé. Bien sûr, cela ne fonctionne qu'avec des connexions où les données sont reçues tous les temps.
Par le paramètre de délai d'attente du socket à 1 cela exigerait que chaque milliseconde de nouvelles données sont reçues (en supposant que vous lire le bloc de données sage et le bloc est assez grand)!
Si seulement le flux entrant des stands pour plus d'une milliseconde vous êtes en cours d'exécution dans un délai d'expiration.
Un délai d'attente de connexion est le montant maximum de fois que le programme est prêt à attendre pour configurer une connexion à un autre processus. Vous n'avez pas ou l'affichage de toutes les données d'application à ce moment, juste à l'établissement de la connexion, elle-même.
Un délai d'attente du socket est le délai d'attente lors de l'attente des paquets individuels. C'est une idée fausse commune que un socket délai est le délai d'attente pour recevoir la réponse complète. Donc, si vous avez un socket délai d'attente de 1 seconde, et une réponse composé de 3 paquets IP, où chaque paquet de réponse prend de 0,9 secondes à arriver, pour un total de temps de réponse de 2,7 secondes, alors il n'y aura pas de délai d'attente.