刚看 udp 组播,写了个 demo ,组播地址是 224.0.0.250 ,监听端口是 9985
发送方代码
func stdlibClient() {
ip := net.ParseIP("224.0.0.250")
srcAddr := &net.UDPAddr{IP: net.IPv4zero, Port: 0}
dstAddr := &net.UDPAddr{IP: ip, Port: 9985}
conn, err := net.DialUDP("udp", srcAddr, dstAddr)
if err != nil {
log.Println(err)
}
defer conn.Close()
conn.Write([]byte("hello"))
log.Printf("stdlibClient <%s>\n", conn.RemoteAddr())
}
我在想 dstAddr 指定的是组播的地址,如果接收方在广域网上,他是如何找到对方的?又没有指定对方的公网 IP 。