我正在连接4 nodemcu(esp8266)。 1 esp8266用作接入点,其他连接到它。
当我通过esp8266作为接入点将UDP数据包作为广播消息发送到所有esp8266时,其他人不接收它,但是当我使用家庭路由器甚至移动热点作为接入点时,广播消息被其他人接收esp8266。 另外,我在这里发布了一部分用于UDP的代码,因此可能会有一些变量你会看到未声明,但它们最初是声明的,而且当我用不是esp8266的Access Point连接它时代码正常工作
接入点代码:#include
void setup()
{
Serial.begin(115200);
Serial.println();
Serial.print("Setting soft-AP ... ");
boolean result = WiFi.softAP("ssid", "password123456");
if(result == true)
{
Serial.println("Ready");
}
else
{
Serial.println("Failed!");
}
}
void loop()
{
Serial.printf("Stations connected = %d\n",
WiFi.softAPgetStationNum());
delay(3000);
}
发送UPD数据包作为广播的代码:
unsigned int localPort = 2000;
IPAddress SendIP(192,168,43,255);
setup()
{
udp.begin(localPort);
Serial.print("Local port: ");
Serial.println(udp.localPort());
}
loop()
{
udp.beginPacket(SendIP, 2000);
udp.write("p");
udp.endPacket();
}
接收UDP数据包的代码:
void loop()
{
int packetSize = udp.parsePacket();
if(packetSize)
{
udp.read(packetBuffer,UDP_TX_PACKET_MAX_SIZE);
p = packetBuffer[0];
Serial.println(p);
function();
}
请告诉我使用esp8266作为发送UDP数据包的接入点的问题。 如果esp8266不能使用,请告诉我任何其他芯片可以做的工作,我想制作一个便携式系统,所以我不能使用路由器。