Docker - UDP Broadcast не работает под MacOS - PullRequest
0 голосов
/ 20 февраля 2020

У меня есть приложение python, которое ищет устройство в сети через широковещательные пакеты UDP. Мой код хорошо работает под Windows, MacOS (Дарвин), Docker (Windows Хост), но не Docker на MacOS (Дарвин). Может ли кто-нибудь указать мне направление, чтобы найти и устранить причину.

IP-адрес Ma c (и устройство, которое будет найдено) имеет IP-адрес 192.168.2.x Обычно 192.168.2.255, так как вещание работает

Python Код: (с различными широковещательными адресами для MacOS)

server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
server.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
server.settimeout(0.2)
server.bind(("", 9302))
message = msgpack.packb({“service”: “control.ws”})
a=2
print("\tLooking for Server:")
while a>1:
    print("\t\tSending broadcast #"+str(a))
    server.sendto(message, (Broadcast_Addr, 9101))
    print("\t\t…Broadcast to: “, Broadcast_Addr)
    time.sleep(1)
    try:
        data, addr = server.recvfrom(1024)
    except socket.error as e:
        print(“Error getting socket data: %s” % e)
        print(“Exiting Program Now”)
        sys.exit(1)
    except:
        print(”****Stopped looking - Major Error!")
        sys.exit(1)
    else:
        Server_Data = msgpack.unpackb(data)
        #Server was found
a=a-1

Windows Docker вызов (работает)

docker run -it -p 8765:8765 -v C:\ABC_Volume:/logs -p 9101:9101/udp -p 9302:9302/udp myimage:v1

MacOS Docker вызов (не работает) *

m$ docker run -it -p 8765:8765 -p 9101:9101/udp -p 9302:9302/udp  myimage.v1

Docker Информация от MacOS

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...