2016-05-05 4 views
0

Ich muss ein UDP-Paket an jeden Host des Netzwerks senden, sagen N Hosts.ein Socket, um mehrere Adressen zu erreichen

Meine aktuelle C-Implementierung ist es ziemlich einfach:

  • einen UDP-Socket für jeden Host
  • Verwendung sendto über die gleiche Buchse öffnet

Mit Go I net.Conn (Verbindung), nicht Steckdosen.

Wie kann ich UDP-Pakete mit nur einem fd an verschiedene Hosts senden?

Wie jetzt muss ich eine net.Conn N-mal schließen und öffnen.

Vielen Dank im Voraus für Ihre Hilfe :)

+0

Wenn Sie mit UDP arbeiten, haben Sie einen UDPConn, der über Methoden zum Schreiben auf eine bestimmte Adresse verfügt. Können Sie ein Beispiel dafür zeigen, was Sie tun? – JimB

Antwort

1

Verwenden net.ListenUDP einen UDP-Socket mit einem gewünschten lokal Port erstellen (oder 0 einen verfügbaren Port zugewiesen zu bekommen). Dies gibt Ihnen eine net.UDPConn, die WriteTo und ReadFrom Methoden (entspricht sendto und recvfrom) hat. Der Unterschied zwischen WriteTo/ReadFrom und WriteToUDP/ReadFromUDP besteht darin, dass die erste die generische PacketConn-Schnittstelle implementiert, während die zweite UDP-spezifisch ist, wodurch die Menge an Casting reduziert werden kann, wenn Sie wissen, dass Sie immer UDP verwenden.

Verwandte Themen