begin process at 2012 05 30 16:19:42
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

Réseau & Internet

 > 

Regler le timeout de l'appel connect()


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Regler le timeout de l'appel connect()

mercredi 16 juillet 2008 à 17:34:24 | Regler le timeout de l'appel connect()

marsxema

Bonjour,
Actuellement dans la création d'un filtre directshow qui doit se connecter à des caméras pour afficher des images, je passe par une socket pour récupérer les informations sur la caméra distante.

Mon programme marche très bien, et je récupère bien les images . Maintenant, je dois pouvoir gérer la déconnexion de la caméra.
Donc en gros, le problème que je rencontre actuellement est que lorsque la caméra est débranchée, la fonction connect() met 21 secondes avant de lancer le timeout. Je voudrai réduire ce timeout :
- pour cela j'ai regardé du coté de setsockopt mais ça n'a pas l'air de changer quoique ce soit. Pourtant cette fonction semble appropriée.
- test avec la fonction select. Mais ce n'est pas ce que je veux ou alors je l'ai mal utilisé. En gros, mon appel select est bloquant le temps de mon nouveau timeout/
Y'a t'il un moyen de régler ce timeout ?

Merci d'avance
jeudi 17 juillet 2008 à 11:29:40 | Re : Regler le timeout de l'appel connect()

marsxema

Bon en fait, j'avais mal défini mon select.
J'ai un nouveau problème :



       socket connexion = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);

       [ TESTS ]

        u_long arg = 1;
        ioctlsocket(connexion, FIONBIO, &arg);

        fd_set fdwrite;

        timeval tempo;
        tempo.tv_sec = 3; //en s
        tempo.tv_usec = 0; //en ms
        FD_ZERO(&fdwrite);
        FD_SET(connexion, &fdwrite);

        server.sin_addr.s_addr=*((unsigned long*)hp->h_addr);
        server.sin_family=AF_INET;
        server.sin_port=htons(80);

        connect(connexion,(struct sockaddr*)&server,sizeof(server));
        int retval = select(0, NULL, &fdwrite,NULL,&tempo);
        if (retval > 0)
        {
             // ENVOI ET RECEPTION DE DONNEES
         }else if (retval == 0)
              //TIMEOUT
         else if (retval == -1)
              // ERROR


Lorsque je fais ceci en boucle, mon programme plante sans afficher d'erreur. En mode debug, si j'exécute ligne par ligne tout se passe bien, mais dès que j'enlève les breakpoint et que je laisse l'application tourner, ça plante. Il doit donc me manquer quelque chose.


Cette discussion est classée dans : fonction, appel, caméra, connect, timeout


Répondre à ce message

Sujets en rapport avec ce message

probleme d'include [ par titus0m ] bonjour,je develop sous kdev sous linux.mon probleme est un conflit entre deux include qui possede une fonction qui se nomme pareil. C'est la fonction fonction pr detruire l'objet qui l'appel [ par mat74 ] Salut a ts ,voila je voudrai creer une fonction qui permettrai de detruire l'objet qui l'appel ( ds une classe )j'ai essayer sa :void ennemis::detruir Appel de fonction [ par amauro ] Bonjour à tous!Bonjour à tous!J'aimerais appeller une fonction que j'ai crée moi-même dans la classe View.cpp de mon application MDI depuis la classe appel a une fonction [ par cyb_dev ] Bonjour je debute en c et je souhaiterais savoir comment faire pour appeler une fonction.J'aimerais qu'un evenement dans mon programme (une variable à fenetres, boutons et appel de fonction [ par hariseldon ] bonjour,je suis scientifique et trés peu informaticien.j'ai donc developpé une application en C et je voudrais créer une interface plus ergonomique qu appel d'une fonction [ par dletozeun ] bonjour,Je voudrais savoir s'il est possible d'appeler une fonction dont ont ne connais pas le nom dans le prog lui meme, mais en le recuperant dans u Connect bloquant [ par 360 ] Salut!Je réalise un programme avec des sockets et je voudrais savoir si il y a un moyen de mettre un timeout pour la fonction connect().Car lorsque j' Appel fonction de DLL [ par zibo3 ] Bonjour, Dans mon programme, je load une dll et j'utilise une fonction comme point d'entrée pour l'attaquer mais j'ai un petit probleme. Ca fonctionn [DEV C] Comment faire appel à une fonction contenue dans la lib User32.lib [ par nitrique ] Bonjour, J'aimerais faire appel à la fonction SendInput() contenue dans l'api User32.Comment lui faire appel en DEV C ?David, à VERSAILLES Appel de fonction VB a partir de C++ [ par sekatirex ] bonjour, jvoudrai savoir si on peu appeler un fonction ou program écrit en VB5 a a partir d'une programme en C++.!


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,406 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales