Create loopback multicast listener UDP

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)

image
image

So the problem is in reading from multicast address. Basically, mudpConn.ReadFromUDP(buffer) just hangs and waits for data, but they don’t come.