Я пытаюсь заставить Raspberry (на Raspbian) получать многоадресные UDP-сообщения. Я использую следующий код с 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
Этот код работает нормально, я получаю нужные пакеты, но через некоторое время, обычно 5 минут, sock.recv(32)
застревает, и больше ничего не получается. Тот же самый код прекрасно работает на моем компьютере, он работает уже более часа, получая все пакеты.
Кто-нибудь сталкивался с этим на Малине?
Заранее спасибо