ESP8266在接收udp数据包时出现问题。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ESP8266在接收udp数据包时出现问题。相关的知识,希望对你有一定的参考价值。
我的WeMos D1 Mini正在运行一个脚本,如果它收到udp数据包中的某些字符串,它应该执行某些操作。
大多数时候它都能正常工作,但有时它却没有任何反应,通常只需等待几分钟或发送几次数据包即可。我的猜测是,它可能会进入某种深度睡眠。有时候唯一有用的就是重启它。
我试着实现了一个看门狗,但这并没有真正的工作(但这是一个单独的问题),我不确定它是否能解决这个问题.我通过Netcat发送数据包,WiFi强度是确定的(但不是很大).一切都在本地网络上。
请看一下我的代码,检查一下是否有错误improvements。
#include <ESP8266WiFi.h>
#include <WiFiUDP.h>
#define SSID "XXX"
#define PASSWORD "XXX"
#define PORT XXX
WiFiUDP udpServer;
char MESSAGE[] = "message";
void setup() {
Serial.begin(9600);
WiFi.mode(WIFI_STA);
WiFi.begin(SSID, PASSWORD);
wifiStrength();
udpServer.begin(PORT);
delay(100);
}
void wifiStrength(){
if (WiFi.status() != WL_CONNECTED) {
Serial.println("no wifi, reconnecting...");
delay(3000);
WiFi.begin(SSID, PASSWORD);
}
long rssi = WiFi.RSSI();
Serial.print("connected, RSSI:");
Serial.println(rssi);
}
void loop() {
if (udpServer.parsePacket()) {
char receiveBuffer[WIFICLIENT_MAX_PACKET_SIZE + 1];
udpServer.read(receiveBuffer, sizeof(receiveBuffer) - 1);
if (strstr(receiveBuffer, MESSAGE)) {
Serial.println("do stuff...");
}
}
}
以上是关于ESP8266在接收udp数据包时出现问题。的主要内容,如果未能解决你的问题,请参考以下文章
在 Iphone SDK 上接收带有异步 Udp 套接字的 UPS 包时出现问题
BeagleBone Black–ESP8266 UDP 服务
UDP 协议 C# UdpClient乱序接收数据包丢失的问题 Socket ReceiveBufferSize