I'm trying to make a Raspberry (on Raspbian) receiving UDP multicast messages. I'm using the following code with Python 3:
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock.bind(("239.0.0.1", 22700))
mreq = struct.pack("4sl", socket.inet_aton("239.0.0.1"), socket.INADDR_ANY)
sock.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq)
while True:
data = sock.recv(32).decode("utf8")
# Do stuff with the received data
This code is working fine, I'm receiving the desired packets but after a while, usually 5 minutes, the sock.recv(32)
gets stuck and nothing is received anymore. The exact same code works perfectly on my computer, it's been running for more than an hour now, receiving all packets.
Has anyone been confronted to this on a Raspberry ? Thanks in advance