I’m trying to write clients, that listen or send messages on loopback multicast address, for example: 233.255.255.250:1000.
Setup multicast listener udp:
func setupMulticastUDPConn() *net.UDPConn {
addr, err := net.ResolveUDPAddr("udp", MulticastUDP)
if err != nil {
log.Fatalf("cannot resolve multicast udp address: %s", err)
}
ifaces, _ := net.Interfaces()
mUdpConn, err := net.ListenMulticastUDP("udp", &ifaces[1], addr)
if err != nil {
log.Fatalf("cannot listen on multicast udp: %s", err)
}
return mUdpConn
}
I’m able to see packets created in Wireshark, but they are not properly delivered. This is a code for reading from conn:
length, _, err := mUdpConn.ReadFromUDP(buffer)
So the problem is in reading from multicast address. Basically, mudpConn.ReadFromUDP(buffer)
just hangs and waits for data, but they don’t come.