3 votes

Multicasting IP : Comment savoir si quelqu'un est abonné ?

J'ai consulté diverses documentations (.NET WinSock, c++ boost::asio) sur le multicast. L'un des problèmes que j'ai est que je ne vois pas comment vous pouvez savoir s'il existe une au moins 1 abonné à un groupe. La raison pour laquelle j'en ai besoin est qu'il n'y a pas beaucoup d'intérêt à créer les données si personne ne les écoute. Le prochain saut envoie-t-il un message sur l'état actuel de l'arbre ? Y a-t-il une sorte d'événement déclenché lorsque le premier abonné apparaît, ou lorsque le dernier part ?

4voto

BTownTKD Points 2381

Reportez-vous à cet article sur " Comment fonctionne la multidiffusion ."

En bref, votre application n'a pas besoin de suivre les abonnements multicast ; le routeur le fait pour vous. Si vous avez des données multicast à produire, produisez-les. Le routeur se chargera de savoir si ces données sont envoyées ou non aux abonnés.

Aucun événement n'est déclenché par le routeur pour vous informer des abonnements. Si vous voulez des notifications, vous devrez intégrer cette fonctionnalité dans votre propre implémentation de protocole personnalisé et exiger que vos clients notifient explicitement l'hôte.

1voto

EJP Points 113412

Vous pouvez le savoir si vous pouvez émettre un message IGMP QUERY, ou peut-être en écoutant les messages IGMP JOIN/LEAVE : vous ne recevrez jamais qu'un seul de chaque, à moins que vous ne soyez rattaché à plusieurs routeurs. Tant que le dernier message IGMP était un JOIN pour votre groupe et non un LEAVE, il y a au moins un abonné.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X