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

C++ Discussion :

Fin de conversation entre client et serveur


Sujet :

C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 80
    Points : 63
    Points
    63
    Par défaut Fin de conversation entre client et serveur
    Bonjour,
    Il y a quelque temps j'avais posé une question sur les sockets et depuis j'ai fait mon chemin et j'ai codé un serveur et un client.
    J'ai rechercher a debloquer mes sockets et maintenant je recherche comment finir une conversation entre mon client et mon serveur, j'ai deja paramètré mes executable pour qu'il ne plante pas quand l'un ou l'autre se ferme d'un manière inatendu avec WSAGetLastError() = 10054.
    Donc dans les deux code j'ai une boucle do{}while(); mais je ne sai pas quoi mettre dans le while() pour que quand soit le serveur ou le client souhait fermer le conversation la boucle se ferme et que le serveur attende une autre connextion. J'ai chercher sur MSDN mais rien sur GOOGLE de meme mais faut dire que je ne sais pas dans quelle direction chercher !!!

    Donc l'evenement que j'aimerai savoir c'est quand l'un des deux programme quitte et ferme leur socket de connextion ( shutdown(),closesocket() ) il y a toujours l'erreur 10035 de WSAGetLastError() quand je ne recoi rien de l'un ou l'autre car mes socket sont non bloquantes !

    Si quelqu'un a une solution et voudrai bien me la communiquer j'en serai heureux !!!

    Merci de votre attention Stany.

    Je peux mettre les codes si vou me le demander.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Logiquement, tu fais recv() pour attendre un message...
    recv()<1 quand l'autre s'est déconnecté.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while(recv(...))
    {
      // Traitement des données reçues
    }
    Sinon, j'ai moi aussi une question : quand on fait un send(), comment savoir quand les données sont parties et que ça passe à la suite ?
    J'ai observé que si on fait beaucoup de send() et qu'on quitte juste après, le programme n'attend pas que tout ai été envoyé, donc comment faire pour attendre avant de quitter ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 80
    Points : 63
    Points
    63
    Par défaut
    Merci de ta reponce mais je ne sais pas si tu expérimenté les socket non bloquante et avec elles bien recv() est toujours a -1 sauf lorsque tu recoi qq chose ! Alors j'ai un peu resolut mon probléme en envoyant un message "shutdown" en locurence et quand il le recoi la conversation se coupe! Alors pour ton probleme il y a deux facon de quitter un fenétre MSDOS soi avec une fin "normal" avec des exit() , return , .... et la metode barbar en cliquant sur le croi ce qui génaire l'erreur 10054 ( voir MSDN a WSAGetLastError() ) si non je pense qu'il pourai avoir une fonction "InWork" qui pourai te dir que le travaille n'est pas fini cette action pourai venir lors d'une interruption de boucle par une Echap programmer ! si non le receveur doit interpreter l'erreur 10054 comme une rupture si il attend des infos.

    Je repose quand meme la question y aurai-t-il une maniére moins barbar pour connaitre la déconnextion soi du serveur ou du client ?

    Merci !

    Stany

Discussions similaires

  1. Envoi de xml entre client et serveur
    Par metalcoyote dans le forum Langage
    Réponses: 1
    Dernier message: 27/10/2007, 21h50
  2. passer une chaine de caractère entre client et serveur COM
    Par ali.ensi dans le forum Visual C++
    Réponses: 7
    Dernier message: 28/03/2007, 17h30
  3. Réponses: 6
    Dernier message: 02/10/2006, 17h57
  4. [ODBC] Problème entre client windows, serveur windows
    Par Mascotte dans le forum Installation
    Réponses: 13
    Dernier message: 13/09/2006, 12h15
  5. [Java] Communication entre client et serveur
    Par danje dans le forum CORBA
    Réponses: 1
    Dernier message: 14/12/2004, 18h08

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