IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau C Discussion :

Timeout sur un connect()


Sujet :

Réseau C

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 175
    Par défaut Timeout sur un connect()
    Bonjour,

    Peut-on faire un timeout sur un connect, pour éviter que l'application cherche à se connecter en permanence lorsque le serveur est indisponible ?

  2. #2
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par oranoutan Voir le message
    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...

  3. #3
    Membre éprouvé
    Avatar de granquet
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    1 201
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 201
    Par défaut
    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)

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 175
    Par défaut
    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 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fcntl(fd, F_SETFL, O_NONBLOCK);
    impossible de se connecter.

Discussions similaires

  1. Timeout sur connection TCP IP
    Par ebgérard dans le forum MySQL
    Réponses: 18
    Dernier message: 22/11/2010, 15h54
  2. Configuration timeout sur fonction connect
    Par taket dans le forum Linux
    Réponses: 1
    Dernier message: 10/07/2006, 16h47
  3. [jdbc] question sur une connection
    Par berg dans le forum JDBC
    Réponses: 2
    Dernier message: 10/09/2005, 08h29
  4. AdoQuery sur deux connections
    Par jnc dans le forum Bases de données
    Réponses: 1
    Dernier message: 19/10/2004, 11h09
  5. [Sockets] Timeout sur accept() ?
    Par MikB dans le forum Développement
    Réponses: 2
    Dernier message: 30/12/2003, 17h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo