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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
JKB
Le Mon, 7 Feb 2011 13:42:07 +0000 (UTC), JKB écrivait :
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
Le Mon, 7 Feb 2011 13:42:07 +0000 (UTC),
JKB <jkb@koenigsberg.invalid> écrivait :
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
Le Mon, 7 Feb 2011 13:42:07 +0000 (UTC), JKB écrivait :
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