如何修复 Arduino [WiFiUdp.cpp:183] endPacket(): could not send data: 118

当你看到类似这样的日志消息时

wifiudp_error.txt
[ 13701][E][WiFiUdp.cpp:183] endPacket(): could not send data: 118

在你的微控制器上,你可以使用 Serial.println(strerror(118)); 来查找错误代码 118 的含义。

对于 118(使用 arduino-espressif32 v2.0.5 测试),错误表示

arduino_error_118_meaning.txt
Host unreachable

通常,此错误意味着你未连接到互联网/网络但也可能意味着

注意,错误消息本身不指示代码的哪部分尝试发送 UDP 数据包 - 因此,不清楚具体无法访问哪个主机。但是,此消息专门发生在发送 UDP 数据包的代码中。在几乎所有情况下,当微控制器响应来自其他主机的 UDP 数据包(如 ArduinoOTA)时不会发生错误,而是当微控制器尝试向由微控制器自身发起的网络发送数据包(如 NTP)时发生。


Check out similar posts by category: Arduino, C/C++, Embedded