Muss ich einen PORT, wenn der Beitritt zu einer multicast-Gruppe oder nur die IP?
Ich würde gerne lernen, die einmal und für alle. Was ist das Verfahren zum verbinden eines multicast-socket? Ich weiß, Sie zu binden an eine lokale Schnittstelle (brauchst du die IP und den port für das?) dann weiß ich, Sie sich einer Gruppe anschließen (brauchst du IP:PORT bei der Adresse, die Sie möchten, zu verbinden und die Netzwerk-Schnittstelle wieder!!!!!??) und schließlich können Sie die Gruppe verlassen.
Kann jemand mit Erfahrung klären, was das ganze für die vielen Adressen? Ich werde die Liste unten:
- BindAddress (IP:PORT)
- Netzwerkadresse (IP:PORT)
- MulticastAddress (IP:PORT)
Wo und was ist der multicast - Gruppe hier?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einer multicast-Gruppe ist eine spezielle IP-Adresse. Sie verbinden es per
setsockopt()
mithilfe der socket-option IP_ADDMEMBERSHIP, oder z.B. in Java überMulticastSocket.joinGroup()
. Keine port-Nummer hier. Wenn Sie beitreten wollen, über eine bestimmte lokale Adresse verwenden Sie die überladung, die angibt, eine lokale Adresse, oder rufen SiesetNetworkInterface()
ersten.Bindung an eine lokale Adresse ist ein separater Vorgang, der in Erster Linie bestimmt, welche lokale Adressen den socket senden und empfangen kann Daten auf: einen, oder alle von Ihnen: entweder eine lokale Adresse, die bestimmt, welche der verfügbaren Subnetze, die Sie hören und senden können, die über oder einen Hafen, oder beides. Normalerweise ist es am besten, INADDR_ANY, wie die bind-Adresse, es sei denn, Ihre Anwendung auf Magische Weise kennt die Topologie des Netzwerks.
Diese wird getrübt durch die Tatsache, dass Sie binden können, um eine multicast-Adresse in Linux, aber das scheint ein Missverständnis, dass wird jetzt immer bei uns sein.
Senden Sie eine multicast-Gruppe durch das senden der multicast-Adresse.
Ja, Sie müssen definieren, sowohl die Adresse und der port für das senden/empfangen von multicast-Nachrichten. Dies sind die UDP-Pakete, damit Sie sowohl die Adresse und den port des Netzwerk-stack, um in der Lage sein, ordnungsgemäß zu liefern, die Nachrichten zu den beteiligten Prozessen. So hören sich für einen bestimmten Satz von multicast-Nachrichten, die von Ihrer Anwendung benötigt, um eine Bindung an eine bestimmte multicast-ip-Adresse und port-Kombination (und natürlich für ein set, oder alle interfaces auf der Maschine). Die Gruppe ist definiert durch die Adresse/port-Kombination.
Gute schnelle Erklärung
Einige Beispiel-Quellcode in C und anderen Sprachen