Sockets UDP et multicast

Le
JKB
Bonjour à tous,

J'essaie de faire tourner un bout de programme qui embarque un
serveur multicast. L'idée est de lire un flux UDP/unicast d'une
caméra et de le balancer en multicast. La caméra fait bien du
multicast mais il est impossible de l'utiliser directement pour une
raison trop compliquée à expliquer ici.

J'ai donc créé une socket réseau à l'aide de winsock2.0, affecté les
adresses locales et distantes (INADDR_ANY), le port en question et
joint le group de diffusion multicast. Tout se passe normalement. Je
précise que j'ai une certaine connaissance des sockets BSD et que
mon problème ne se situe pas dans le code lui-même.

Et mon programme envoie des paquets sur le réseau. Le problème est
que les paquets qui sont envoyés sur l'adresse 224.16.1.1, donc en
multicast (et taggués comme tels, j'ai vérifié avec un sniffeur de
réseau) sont en fait envoyés en broadcast ! Je pollue donc tout le
réseau.

Avec ou sans client, le serveur envoie vers toutes les machines ses
trames multicast. Pourtant, le multicast stipule que le récepteur
doit s'inscrire avec une trame IGMP pour recevoir le flux.

Le même programme fonctionne parfaitement sous NetBSD. Le problème
vient certainement d'un problème de configuration quelque part, mais
je ne vois pas bien où. Une idée ? Pour information, je suis
actuellement avec un W7 ultimate 64 bits à jour et le compilo est un
Visual C++ 2010.

Cordialement,

JKB

--
Si votre demande me parvient sur carte perforée, je titiouaillerai très
volontiers une réponse
=> http://grincheux.de-charybde-en-scylla.fr
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JKB
Le #23097401
Le Mon, 7 Feb 2011 13:42:07 +0000 (UTC),
JKB
Bonjour à tous,

J'essaie de faire tourner un bout de programme qui embarque un
serveur multicast. L'idée est de lire un flux UDP/unicast d'une
caméra et de le balancer en multicast. La caméra fait bien du
multicast mais il est impossible de l'utiliser directement pour une
raison trop compliquée à expliquer ici.

J'ai donc créé une socket réseau à l'aide de winsock2.0, affecté les
adresses locales et distantes (INADDR_ANY), le port en question et
joint le group de diffusion multicast. Tout se passe normalement. Je
précise que j'ai une certaine connaissance des sockets BSD et que
mon problème ne se situe pas dans le code lui-même.

Et mon programme envoie des paquets sur le réseau. Le problème est
que les paquets qui sont envoyés sur l'adresse 224.16.1.1, donc en
multicast (et taggués comme tels, j'ai vérifié avec un sniffeur de
réseau) sont en fait envoyés en broadcast ! Je pollue donc tout le
réseau.

Avec ou sans client, le serveur envoie vers toutes les machines ses
trames multicast. Pourtant, le multicast stipule que le récepteur
doit s'inscrire avec une trame IGMP pour recevoir le flux.

Le même programme fonctionne parfaitement sous NetBSD. Le problème
vient certainement d'un problème de configuration quelque part, mais
je ne vois pas bien où. Une idée ? Pour information, je suis
actuellement avec un W7 ultimate 64 bits à jour et le compilo est un
Visual C++ 2010.



Je me réponds à moi-même. Le même exécutable fonctionne parfaitement
sous Windows 2008R2. Conclusion ?... ;-)

JKB

--
Si votre demande me parvient sur carte perforée, je titiouaillerai très
volontiers une réponse...
=> http://grincheux.de-charybde-en-scylla.fr
Publicité
Poster une réponse
Anonyme