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

Langage C++ Discussion :

Lister client connectés à une socket


Sujet :

Langage C++

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 27
    Points : 15
    Points
    15
    Par défaut Lister client connectés à une socket
    Hello

    Je travail acutellement sur un petit programme client/serveur. Je voudrais pouvoir lister les clients connectés sur une socket. Existe t'il une fonction déjà prête pour ça? Pour le moment la solution que j'ai trouvé consiste à envoyer un message (via la fonction "send()") pour vérifier si il est connecté ou non.

    Si vous connaissez une méthode permettant ce listing, ça m'interesse

    Merci d'avance

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 074
    Points : 12 120
    Points
    12 120
    Par défaut
    C'est très brumeux votre question.
    Si c'est une socket UDP, il n'y a pas de connexion.
    Si c'est du TCP, le protocole TCP base ses connexions sur des hearth beat de 2 minutes.
    Il n'y a donc rien pour ça car cela n'a pas vraiment de sens.
    Internet, c'est pas comme la commutation de circuit du début du XXème siècle, c'est pas le téléphone.

    C'est quoi votre vrai besoin ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 27
    Points : 15
    Points
    15
    Par défaut
    Bonjour,

    Enfaite je travail sur un projet de programme client/serveur. Je suis actuellement sur la partie serveur et je cherche à dresser une liste des clients qui y sont connecté. Je pensais que ça se faisait en vérifiant les socket "connectées" mais à voir votre réaction ça ne se fait pas comme ça

    Bref tous ça pour dire que j'essaie de faire une liste des clients connectés à mon serveur, tous simplement

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 074
    Points : 12 120
    Points
    12 120
    Par défaut
    Bin, suffit de maintenir une liste.
    Vous y ajoutez le client à sa connexion et vous l'enlever à sa déconnexion.

    Bon, je ne suis pas schizophrène, j'ai juste fais des recherches après avoir écrit ces 2 premières lignes de mon post.
    http://blog.stephencleary.com/2009/0...n-dropped.html
    Mon truc simple devient d'un coup un peu plus chiadé et pas portable.(rapport à mon keep-alive)

    Si c'est pour une solution portable, je crois que vous avez déjà la bonne solution. Et mon, je vais revoir mes cours sur le TCP et pas le mélanger avec l'HTTP.

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Quand une connection TCP est effectuée, un socket est créé.
    Pour avoir le nombre de connections, tu fais un .size sur le container de tes connection.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 27
    Points : 15
    Points
    15
    Par défaut
    @bacelar : C'est pas bien grave ça arrive à tous le monde x)
    J'ai regardé ton lien et la technique qui y est dite consiste à envoyer un message vide au client. Pourquoi pas, je vais tester ça

    @Bousk : Qu'est ce que tu appel le "container"? Un vector où sont stocké les sockets clients? :o

    En tous cas merci à vous j'avance dans mon projet

    EDIT: La solution que j'ai finalement trouvé consiste à envoyer un message vide aux clients et en fonction de l'errno je peux savoir si je client est là où non. Si il ne l'ai pas je supprime sa socket se trouvant dans un vector.
    Merci à vous

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

Discussions similaires

  1. Plusieurs socket cliente sur une socket serveur en Java?
    Par loic911 dans le forum Développement
    Réponses: 3
    Dernier message: 11/06/2010, 07h47
  2. Réponses: 2
    Dernier message: 05/12/2007, 14h04
  3. Réponses: 7
    Dernier message: 18/09/2007, 21h59
  4. Réponses: 12
    Dernier message: 21/02/2006, 11h47
  5. Réponses: 2
    Dernier message: 12/10/2004, 13h04

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