Partage
  • Partager sur Facebook
  • Partager sur Twitter

[C++/Socket] probleme d'arret de recv

    15 janvier 2006 à 18:53:40

    Bonjour,

    j'essaye de faire un programme qui télécharge un mail ainsi que sa piece jointe, j'utilise donc les fonctions telnet. Je me connecte avec le mot de passe et le pseudo sans probleme en utilisant :


    send(sock,Pseudo.c_str(),Pseudo.length(), 0) ;
    recv(sock,buffer,MAX,0)


    ainsi de suite. Je dois ensuite utiliser la fonction RETR 3\r\n. Ma variable ne peut aller que a buffer[10000] , je dis ca pour dire que ce n'est pas infini.
    Je dois donc récuperer avec
       
     while( recv(sock,buffer,MAX,0)!=0 )//reponse du serveur suite à la connection   
       {
     
       piece +=buffer; //piece ne gene pas ici , c'est pout aure chose.

       cout<<buffer;
       memset(buffer,0,MAX);

       }


    Je récupere tout parfaitement. Mais comme j'ai mis une boucle infini, je ne sais pas la stopper. Comment pourrais je savoir que RECV n'a plus rien a me donner? car j'ai l'impression qu'il se bloque a cette fonction. RECV attend sans cesse qu'un nouveau message arrive, mais aucun message n'arrivera plus jamais. Donc les fonctions se trouvant apres la fonction "infini" ne s'exécute pas. Auriez vous un moyen de stopper ce recv?
    • Partager sur Facebook
    • Partager sur Twitter
      16 janvier 2006 à 15:03:48

      Tu arretes de lire quand tu as lu une ligne qui ne contenait qu'un caractère '.'

      a+
      • Partager sur Facebook
      • Partager sur Twitter

      [C++/Socket] probleme d'arret de recv

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown