Komunikasi UDP Berbilang Siar membolehkan penghantaran mesej kepada kumpulan penerima tertentu menggunakan IP_OPMULTICAST_IP_OPMULTICAST_ pilihan. Pilihan ini membenarkan penghantar dan penerima paket multicast untuk tinggal pada hos yang sama. Walau bagaimanapun, fungsi net.ListenMulticastUDP standard dalam Go tidak memberikan kawalan langsung ke atas tetapan ini.
Golang.org/x/ pakej net/ipv4 menyediakan set fungsi yang lebih komprehensif untuk bekerja dengan multicast. Ia menawarkan kaedah berikut untuk memanipulasi pilihan IP_MULTICAST_LOOP:
import ( "fmt" "net" "golang.org/x/net/ipv4" ) func main() { ... // Configure multicast UDP connection // Retrieve current IP_MULTICAST_LOOP setting loop, err := pc.MulticastLoopback() if err != nil { fmt.Printf("Error getting multicast loopback: %v\n", err) return } fmt.Printf("Multicast loopback currently: %v\n", loop) if !loop { // Enable multicast loopback if err := pc.SetMulticastLoopback(true); err != nil { fmt.Printf("Error enabling multicast loopback: %v\n", err) return } } ... // Continue multicast operations }
Atas ialah kandungan terperinci Bagaimana untuk Mengkonfigurasi IP_MULTICAST_LOOP untuk Sambungan UDP Berbilang Siar di Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!