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éseau] Créer une socket UDP multicast


Sujet :

C++

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Points : 288
    Points
    288
    Par défaut [Réseau] Créer une socket UDP multicast
    Bonjour à tous,

    je débute en c++, et j'aimerais savoir comment creer une socket udp multicast et envoyer des données par son intermédiaire en c++...
    j'espere que vous pourrez m'aider à comprendre ou me diriger vers des cours, sur google je n'ai pas trouvé quelque chose de précis sur ce sujet...

    Merci d'avance

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Tu bloques à quel niveau exactement ?

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Points : 288
    Points
    288
    Par défaut
    bah le commencement,
    j'ai déjà créer des socket simple, mais pour les multicast udp je ne vois pas...

  4. #4
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Je ne suis pas sur que les sockets "de base" aient les fonctions suffisantes pour gérer les multicast.

    En tout cas multicast c'est de l'IP (donc le niveau en dessous). Déjà sais-tu comment cela fonctionne ? Parceque créer un socket UDP multicast ne veut pas dire grand chose ...

    Par contre, envoyer sur une addresse de multicast un datagram est assez simple:

    En général, avec les fonctions de base, c'est un truc du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    SOCKET hSocket = socket(AF_INET,SOCK_DGRAM,0);
     
    sockaddr_in   addr_dest;
    addr_dest.sin_family = AF_INET;
    addr_dest.sin_addr.s_addr = inet_addr(GROUP_ADDR);
    addr_dest.sin_port = htons(PORT_NUM);
     
    unsigned char ttl = 1;
    setsockopt(hSocket , IPPROTO_IP, IP_MULTICAST_TTL, (char *)&ttl, sizeof(ttl));
     
    sendto(hSocket , buffer, sizeof(buffer), 0, (struct sockaddr*)&addr_dest, sizeof(addr_dest));
    Le TTL est juste pour dire "ne sort pas du routeur"
    Et le GROUP_ADDR doit être pris dans la classe D de multicast: 224.0.0.0 à239.255.255.255, sachant que de très nombreuses addresses y sont reservées...
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  5. #5
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Je pense que lorsque l'on dépasse les fonctionnalités basiques des d'utilisation des sockets, il vaut mieux laisser faire le sale boulot à une bonne bibliothèque comme ACE ou Boost.Asio.
    Parce que écrire du code C dans du C++, c'est moyennement sympa d'une part, et puis on peut se permettre de s'abstraire du "relativement bas" niveau.

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Points : 288
    Points
    288
    Par défaut
    merci beaucoup pour ta réponse,
    j'ai tout de même une autre question comment marche un join pour une socket multicast ?

  7. #7
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    protocole IGMP
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  8. #8
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 372
    Points : 23 628
    Points
    23 628
    Par défaut
    Même problème qu'ici.

    http://www.developpez.net/forums/d96...s/#post5404255

    C'est un devoir scolaire ?

Discussions similaires

  1. socket udp multicast et l'api java.nio
    Par maarek dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 01/07/2008, 07h33
  2. Ouvrir une socket
    Par mseprog dans le forum Développement
    Réponses: 1
    Dernier message: 27/04/2005, 17h33
  3. [VB.NET] Probleme pour réutiliser une sockets ??
    Par fdiedler dans le forum Windows Forms
    Réponses: 12
    Dernier message: 10/03/2005, 14h37
  4. [Réseau] plusieurs flux a partir d'une socket
    Par al85 dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 27/01/2005, 18h11
  5. write() dans une socket.. unix
    Par slack dans le forum Réseau
    Réponses: 5
    Dernier message: 18/12/2002, 20h42

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