Domanda

Sto usando MulticastSocket per ricevere i pacchetti UDP Multicast. Come posso determinare a quale indirizzo è stato inviato un tale pacchetto? Con i metodi forniti, sono solo in grado di determinare l'indirizzo del mittente.

Naturalmente, sono io a impostare l'indirizzo To durante la creazione della presa di ascolto, ma posso esserne veramente sicuro? E i pacchetti di trasmissione? E i pacchetti che in qualche modo finiscono qui? Voglio davvero distinguere se il pacchetto fosse DAVVERO multicast.

Grazie!

Aggiornamento: attualmente sembra che i pacchetti unicast appena inviati a quella porta finiscano anche nei socket multicast di ricezione () :( Il collegamento ai dispositivi non mi dà risultati migliori

È stato utile?

Soluzione

Sono un po 'confuso nei dettagli, ma un pacchetto multicast sarà stato inviato alla combo ip / port a cui ti sei abbonato (e queste informazioni saranno nel pacchetto, da qualche parte), supponendo che tu sia riuscito ad avere un percorso chiaro dei router intermedi che comprendono il multicast. Se vuoi assicurarti che il multicastsocket stia ricevendo dalla giusta interfaccia di rete, ci sono un sacco di funzioni per associarlo a un'interfaccia specifica.

Non credo che tu abbia alcun modo di sapere se il pacchetto fosse "davvero" multicast, ovvero qualcuno potrebbe sempre crearne uno, poiché non esiste una vera sicurezza integrata.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top