Пакет UDP не получен esp8266 с Arduino от трансляции сервера Python - PullRequest
0 голосов
/ 09 мая 2019

Я пытаюсь отправить пакет udp с сервера python на клиент arduino по широковещательному IP-адресу ('255.255.255.255'). Сервер python отправляет пакет нормально, но arduino вообще не может получить пакет даже после отключениябрандмауэр Windows

код сервера:

    server = socket(AF_INET, SOCK_DGRAM)
    server.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
    server.setsockopt(SOL_SOCKET, SO_BROADCAST, 1)
    server.bind(('', 8090))
    while True:
            # sending a messgae to client port with broadcast IP
            message = str.encode("12000")
            server.sendto(message, ('<broadcast>', 8090))
            print("Sent packet with message: ", message)
            time.sleep(1)
            content, addr = server.recvfrom(1024)
            sender_port = int(content.decode())

            print("sender port: ", sender_port)
            IP, port = addr
            print("from: ", IP, port)

     /////Arduino code:
     const char* ssid = "";
     const char* password = "";
     int port = 8090;
     char packetBuffer[255];
     WiFiUDP udp;

            void setup()
    {
    Serial.begin(115200);
    WiFi.begin(ssid, password);
    while (WiFi.status() != WL_CONNECTED) {
    delay(2000);
    Serial.println("...");
    }
    udp.begin(port);
    Serial.print("WiFi connected with IP: ");
    Serial.println(WiFi.localIP());
    }
    void loop()
    { 
    int packetSize = udp.parsePacket();
    Serial.println(packetSize);

    if (packetSize) {
    int len = udp.read(packetBuffer, 255);
    Serial.println("packet recieved");
    if (len > 0) {
  packetBuffer[len] = '\0';
}

Serial.println("Server IP address is ");
IPAddress remoteIp = udp.remoteIP();
Serial.println(remoteIp);

размер полученного пакета равен 0, и он должен иметь размер и содержимое

...