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 :

Réalisation d'un service chating


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Novembre 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2015
    Messages : 5
    Par défaut Réalisation d'un service chating
    Bonjour à tous,
    Je veux réaliser un service de messagerie avec les sockets en C++ décrit ci dessous:
    Un Client envoie un message au serveur et le serveur renvoie ce message à tous les autres clients qui sont dans le même canal de communication .
    Ceux ci est à faire en utilisant le protocole UDP.
    Comment le serveur pourrait savoir les clients qui utilisent un même canal de communication sachant que je suis en UDP?
    Dois je utiliser le Multicast?
    Cordialement!

  2. #2
    Rédacteur/Modérateur


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

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Salut,

    UDP ou pas, il te faut "juste" faire un "vrai" serveur, et son code.
    Si par channel tu entends les canaux de discussion, c'est à toi de gérer applicativement où se trouve les clients.
    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.

  3. #3
    Membre Expert
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Billets dans le blog
    1
    Par défaut
    Je rejoinds un peu 'lavis de mamad88, si on est en UDP, comment le serveur connait-il les clients qui sont connectés?

    si j'ai bien compris l'UDP, la socket ouverte pour la communication lors de l'envois du client vers le serveur est à sens unique et périssable non?
    Donc le serveur ne connait que les clients qui se sont connectés, et ne peut communiquer avec eux en retour non?

  4. #4
    Membre Expert
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Par défaut
    Citation Envoyé par skeud Voir le message
    Je rejoinds un peu 'lavis de mamad88, si on est en UDP, comment le serveur connait-il les clients qui sont connectés?

    si j'ai bien compris l'UDP, la socket ouverte pour la communication lors de l'envois du client vers le serveur est à sens unique et périssable non?
    Donc le serveur ne connait que les clients qui se sont connectés, et ne peut communiquer avec eux en retour non?
    Çà se gère au niveau applicatif : quand un client envoi un message (au sens large, ça peut être une demande pour rejoindre un channel par exemple), son IP et le port utilisé sont communiqués au serveur. Çà suffit à l'identifier et à lui répondre.
    Maintenant vu qu'il n'y à pas de connexion en UDP, on peut imaginer un système de keep-alive : les clients envoient toutes les x sec un message indiquant qu'ils sont toujours là.

  5. #5
    Rédacteur/Modérateur


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

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    On appelle ça "connexion virtuelle" http://jeux.developpez.com/tutoriels...connexion-UDP/
    Le mode connecté du TCP s'émule de façon très correct, c'est typique en jeu-vidéo.

    En gros c'est du keep-alive (1/s) pour garder le port ouvert de part et d'autre.

    Btw, un serveur de chat en UDP c'est pas la meilleure idée, à fortiori si on maîtrise pas UDP. UDP c'est pas anodin et directement beaucoup de travail en plus, pour gérer les (dé)connexions entre autre.
    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 Expert
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Billets dans le blog
    1
    Par défaut
    ah ok, donc en gros, on simule la connexion TCP via un système de keep alive en envoyant un message toute les X milliseconde afin de garder le port de connexion ouvert vers le serveur. Ce qui permet au serveur de pouvoir répondre sur cette socket tant que le client lui notifie qu'il vit.

    @mamad88, le fait de faire un serveur de chat de cette manière ressemble un peu à un exercice de cour, tu confirmes?

    @Bousk:
    De mémoire, dans le jeu vidéo, on utilise deux connections:
    _ Une pour les messages de haute importance en TCP (action de tir, notification de mort ...).
    _ Une pour les messages de moindre importance en UDP (maj des positionnement, chat ....).
    Tu confirmes?

    De la même manière on pourrait imaginer un serveur de chat fonctionnant sur ce principe, l’envoi des message en UDP et la notification de changement de salon/connexion/déconnexion en TCP non?

Discussions similaires

  1. Réponses: 0
    Dernier message: 24/06/2010, 16h46
  2. réalisation d'un web service sous netbeans
    Par rls.sissi dans le forum NetBeans
    Réponses: 4
    Dernier message: 20/08/2009, 08h44
  3. [MySQL] Est-il possible de réaliser un service ?
    Par guigui69 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 18/09/2008, 09h50
  4. Procédure pour réaliser un service UNIX
    Par arnaudperfect dans le forum Shell et commandes GNU
    Réponses: 12
    Dernier message: 07/08/2007, 15h38
  5. Réalisation d'un Web Service
    Par lpapouk dans le forum Langage
    Réponses: 1
    Dernier message: 28/12/2005, 11h03

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