QUERY · ISSUE
Not able to send Multicast messages from ESP8266
port-esp8266
Simple multicast message example that doesn't work on the ESP8266:
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
data = "test data".encode('utf-8')
sock.sendto(data, ('239.0.0.10', 3535))
works with micropython on osx though.
I was experimenting with an Nodemcu v2 ESP8266
MicroPython v1.8.1-31-g9de5eb2 on 2016-06-10
CANDIDATE · ISSUE
Pico W: Joining multicast group doesn't receive messages.
bug
Originally reported in the forum: https://forum.micropython.org/viewtopic.php?f=21&t=12965
On the Pico W:
import struct, socket
def inet_aton(addr):
return bytes(map(int, addr.split(".")))
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind(("", 5007))
s.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, struct.pack(">4sI", inet_aton("224.1.1.1"), 0))
print(s.recvfrom(1024))
From a PC:
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_TTL, 2)
s.sendto(b'some data', ('224.1.1.1', 5007))
s.close()
This same code works fine when the receiving device is an ESP32. On the Pico nothing is received.