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 :

Problème fonction select()


Sujet :

Réseau C

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 126
    Points : 58
    Points
    58
    Par défaut Problème fonction select()
    Bonsoir a tous je fait appel a vous, car je bloque je bosse sur un mini chat.
    J'ai cree une boucle dans laquelle j'utilise select pour surveiller mon flux entrant mais visiblement je doit mal l'utiliser car elle ma fonction recv ne continu pas a m'afficher les donnee que le serveur envois,j'obtien bien une premiere fois mes donne pui apres malgre l'envoi du serveur impossible d'afficher le reste. voici une ebauche du code .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
     
     
    struct timeval time2;
     
        time2.tv_sec=1; 
        time2.tv_usec=500; 
     
     
     
        void Frecv2()
        {
        do
        {
     
        FD_ZERO (&READ);
        FD_SET (sock1, &READ);
        Fselect2=select(sock1+1,&READ,NULL,NULL,&time2);
        printf("\n\n%s\n\n",Brecv);
        clean(1);            
        Vrecv=recv(sock1,Brecv,T1,0);
    }while(FD_ISSET (sock1, &READ)!=0);
     }
    je le reprécise encore ceci et un bout de code.Sur mais franchement je ne comprend pas ce qui cloche.Aurai-je mal utiliser Select? Merci D'avance pour votre aide.

  2. #2
    Expert éminent sénior
    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
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par chuko Voir le message
    Bonsoir a tous je fait appel a vous, car je bloque je bosse sur un mini chat.
    J'ai cree une boucle dans laquelle j'utilise select pour surveiller mon flux entrant mais visiblement je doit mal l'utiliser car elle ma fonction recv ne continu pas a m'afficher les donnee que le serveur envois,j'obtien bien une premiere fois mes donne pui apres malgre l'envoi du serveur impossible d'afficher le reste. voici une ebauche du code .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
     
     
    struct timeval time2;
     
        time2.tv_sec=1; 
        time2.tv_usec=500; 
     
     
     
        void Frecv2()
        {
        do
        {
     
        FD_ZERO (&READ);
        FD_SET (sock1, &READ);
        Fselect2=select(sock1+1,&READ,NULL,NULL,&time2);
        printf("\n\n%s\n\n",Brecv);
        clean(1);            
        Vrecv=recv(sock1,Brecv,T1,0);
    }while(FD_ISSET (sock1, &READ)!=0);
     }
    je le reprécise encore ceci et un bout de code.Sur mais franchement je ne comprend pas ce qui cloche.Aurai-je mal utiliser Select? Merci D'avance pour votre aide.
    http://emmanuel-delahaye.developpez....reseaux-c/#LVI

    L'init du timer doit être dans la boucle...

    J'ai un peu du mal à comprendre l'utilité de ce code. Ton read() (normalement recv()), est non-bloquant ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 126
    Points : 58
    Points
    58
    Par défaut re re re
    Désole de répondre si tard mais avec le boulot pa une minute merci pour votre reponse cela marche mieux avec le timer dans la boucle et pour le code en fete mon but etait de determiner si oui on non des donnee etait disponible en lecture car sinon la fonction recv me bloquait indefiniment.Merci encore

Discussions similaires

  1. [XL-2010] Problème sur la fonction SELECT CASE
    Par ValerieH34 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 19/05/2015, 16h30
  2. problème avec la fonction select()
    Par Bathou dans le forum Réseau
    Réponses: 6
    Dernier message: 28/10/2008, 15h04
  3. Problème doublon dans fonction select
    Par roman67 dans le forum SQL
    Réponses: 10
    Dernier message: 31/07/2008, 13h09
  4. [SQL] problème de selection avec la fonction in();
    Par karimphp dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 23/10/2007, 00h12
  5. problème de fonction select
    Par bmadiha dans le forum Réseau
    Réponses: 2
    Dernier message: 07/05/2007, 11h04

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