我实现了一个coap服务器:
#include <coap_server.h>
coapServer coap;
void getListOfWiFi(coapPacket *packet, IPAddress ip, int port, int obs) //id = 0 GET
{
Serial.println("hello");
int numberOfNetworks = WiFi.scanNetworks();
String WifiList = "";
for (int i = 0; i < numberOfNetworks - 1; i++)
{
WifiList += WiFi.SSID(i) + "####";
}
WifiList += WiFi.SSID(numberOfNetworks - 1);
char *temp = new char[WifiList.length() + 1];
WifiList.toCharArray(temp, WifiList.length() + 1);
coap.sendResponse(ip, port, temp);
Serial.println("goodbye");
}
void setup()
{
coap.server(getListOfWiFi, "wifilist");
coap.start(5683);
}
void loop()
{
coap.loop();
}当启动esp时,串行监视器的输出是:
hello
goodbye
hello
goodbye
hello
goodbye
hello
goodbye
hello
goodbye
hello
goodbye它不停地打印这个没有任何接收包或请求..。为什么会发生这种事?谢谢。
我正在使用coap库:
https://github.com/automote/ESP-CoAP on esp8266
ip和端口的输出是:
(IP unset)
port :
0发布于 2019-10-16 11:37:37
看起来,这个特定的CoAP库是内部定期投票 --这是第一个注册的更改资源,无论何时接收到任何包,都可能检测是否要发送一个观察。
您可能需要向库的作者介绍这一点,当这被称为库中的一个bug时。
https://stackoverflow.com/questions/58411397
复制相似问题