Bonjour,
Peut-on faire un timeout sur un connect, pour éviter que l'application cherche à se connecter en permanence lorsque le serveur est indisponible ?
Bonjour,
Peut-on faire un timeout sur un connect, pour éviter que l'application cherche à se connecter en permanence lorsque le serveur est indisponible ?
Aucun rapport avec le langage C.
Je crois savoir que c'est une question de système. Il y a déjà un timeout, et il me semble qu'il n'y a pas de relance automatique, que ce soit sous Windows ou sous unixoïde. Il existe des fonctions systèmes (non standards à ma connaissance) pour configurer les timeouts...
comme l'as expliqué emmanuel, c'est ton système qui gère le timeout.
si tu veux gérer le timeout plus finement il y'as diverses méthodes (qui n'ont pas grand chose à voir avec le langage C, mais plutôt avec les méandres des sockets)
la manière la plus 'propre' et la plus transportable que j'ai croisé c'est d'utiliser select avec le fd_set d'écriture et d'utiliser getsockopt pour connaître l'état de la connection une fois que select as retourné
c'est pas standard, ni portable, mais c'est plutôt bien transportable (POSIX.1 tout de même)
Pour utiliser connect(), il faut bien un langage, là en l'occurence c'est du C.
Sinon j'ai cherché un peu pour le timeout, les réponses qui reviennent le plus souvent c'est connexion non bloquante et utilisation de select() mais c'est pas évident pour mon ptit niveau.
http://www.codeguru.com/forum/showthread.php?t=313970
Dès que je fait :
impossible de se connecter.
Code : Sélectionner tout - Visualiser dans une fenêtre à part fcntl(fd, F_SETFL, O_NONBLOCK);
Partager