如何使用 ESP8266-12E 通过 UDP 发送/接收

How to send/receive via UDP with ESP8266-12E

本文关键字:发送 接收 UDP 通过 何使用 ESP8266-12E      更新时间:2023-10-16

好吧,我已经做了很多次UDP发送/接收。但现在我被困住了。

也许我错过了代码中的一些愚蠢错误,或者我正在使用的库中存在问题。无论如何,如果有人可以提供帮助,请看一下。

接收方代码

#include <ESP8266WiFi.h>
#include <WiFiUdp.h>
const char* ssid = "M3-L7";
const char* password = "mySmartChoice";
unsigned int localPort = 2390; 
char packetBuffer[255];
WiFiUDP Udp;
void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);
    while (WiFi.status() != WL_CONNECTED){
    delay(500);
    Serial.print(".");
  }
  Udp.begin(localPort);
}
void loop() {
  delay(10);
  if (Udp.parsePacket()) {
    int len = Udp.read(packetBuffer, 255);
    if (len > 0) {
      packetBuffer[len] = 0;
      Serial.println(packetBuffer); 
    }
  }
}

发送方/访问点的代码

#include <ESP8266WiFi.h>
#include <WiFiUdp.h>
const char *ssid = "M3-L7";
const char *password = "mySmartChoice";
unsigned int localPort = 2390; 
WiFiUDP Udp;
void setup() {
    delay(1000);
    Serial.begin(115200);
    WiFi.softAP(ssid, password);
  Udp.begin(localPort);
}
void loop() {
 Udp.beginPacket("192.168.4.1", localPort);
 Udp.write("Hello");
 Udp.endPacket();
 delay(10);
}

好吧,我希望"你好"在他们到达连接点:D重复打印,但这已经结束了。

您可能想在Wifi.begin之前尝试将以下内容添加到接收器:

WiFi.mode(WIFI_STA);

这会将 Wifi 设置为工作站(客户端(而不是接入点。您的代码没有这样做,因此很难确定发生了什么,尤其是当您重复使用以前编程为在 AP 模式下运行的设备时。