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 :

[client/serveur] déterminer si le client a fermer son socket


Sujet :

C++

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 26
    Points : 29
    Points
    29
    Par défaut [client/serveur] déterminer si le client a fermer son socket
    Bonjour,

    Je travail actuellement sur une application client/serveur.
    J'utilise select() pour déterminer si un client tente de communiquer avec le serveur.
    Mon souci c'est que si un client ferme son socket, celui-ci est retourné systématiquement par select et traité comme si il t'entai d'envoyer des données.
    je voudrai savoir si il existe une méthode pour déterminer si le socket tente de m'envoyer des donnée ou si il a été fermé par le client.
    J'ai vu qu'au niveau du retour de recv() il était possible de le déterminer mais je voudrai dans la mesure du possible ne pas utiliser errno.

    Cordialement,

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 634
    Points : 407
    Points
    407
    Par défaut
    Citation Envoyé par aicou Voir le message
    Bonjour,

    Je travail actuellement sur une application client/serveur.
    J'utilise select() pour déterminer si un client tente de communiquer avec le serveur.
    Mon souci c'est que si un client ferme son socket, celui-ci est retourné systématiquement par select et traité comme si il t'entai d'envoyer des données.
    je voudrai savoir si il existe une méthode pour déterminer si le socket tente de m'envoyer des donnée ou si il a été fermé par le client.
    J'ai vu qu'au niveau du retour de recv() il était possible de le déterminer mais je voudrai dans la mesure du possible ne pas utiliser errno.

    Cordialement,
    Salut,

    En fait, c'est tout simple, quand tu ferme la socket du cote client, le serveur recoit une chaine vide pour qu'il soit averti. La fonctione recv te renvoi la taille du buffer lu (un ssize_t).

    Il te suffit donc de verifier ce que te renvoi rcv :
    - si rcv te renvoi 0, la socket cliente a ete deconnectée, il faut donc l'enlever de ta liste des socket sur lesquelles tu fait un FD_SET...
    - si rcv te renvoi > 0, la socket est bien connectée, tu recupere le message et le traite.


    J'espere avoir été clair, sinon hésite pas ou donne ton code pour que ca soit plus simple.

    Cordialement,
    NeoKript

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 26
    Points : 29
    Points
    29
    Par défaut
    merci, ca fonctionne parfaitement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. ClientS Serveur broadcast sur les clients
    Par RamoneTAfraise dans le forum Programmation et administration système
    Réponses: 2
    Dernier message: 13/02/2014, 18h47
  2. Client/serveur plusieurs types de clients
    Par colkoba dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 03/06/2011, 12h53
  3. Réponses: 3
    Dernier message: 23/08/2010, 15h10
  4. socket Client/serveur : envoyer message aux clients
    Par hishuma dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 29/07/2009, 22h26
  5. Langage le mieux adapté pour application client serveur ?
    Par guenus dans le forum Débats sur le développement - Le Best Of
    Réponses: 4
    Dernier message: 17/06/2002, 15h46

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