Question

J'utilise MulticastSocket pour recevoir des paquets de multidiffusion UDP. Comment puis-je déterminer à quelle adresse un tel paquet a été envoyé? Avec les méthodes fournies, je ne peux que déterminer l'adresse de l'expéditeur.

Bien sûr, je suis celui qui définit l'adresse de destination lors de la création du socket d'écoute, mais puis-je vraiment en être sûr? Qu'en est-il des paquets de diffusion? Qu'en est-il des paquets qui finissent par arriver ici? Je veux vraiment distinguer si le paquet était vraiment multicast.

Merci!

Mise à jour: il semble actuellement que les paquets monodiffusion qui viennent d'être envoyés sur ce port aboutissent également dans les sockets multidiffusion receive () :( La liaison aux périphériques ne me donne pas non plus de meilleurs résultats

Était-ce utile?

La solution

Je suis un peu flou sur les détails, mais un paquet de multidiffusion aura été envoyé au combo ip / port auquel vous vous êtes abonné (et cette information sera dans le paquet, quelque part), en supposant que vous ayez réussi à obtenir un chemin dégagé. des routeurs intermédiaires qui comprennent la multidiffusion. Si vous souhaitez vous assurer que le multicastsocket reçoit bien la bonne interface réseau, de nombreuses fonctions le lient à une interface spécifique.

Je ne pense pas que vous ayez le moindre moyen de savoir si le paquet était "vraiment". la multidiffusion, c’est-à-dire que quelqu'un peut toujours en créer un, car il n'y a pas de réelle sécurité intégrée.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top