完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
您好,
我想用 ESP8266 手动发送 DHCP 发现消息。 我做了以下代码: 代码:全选#define UDP_BROADCAST_PORT 3444 char DeviceBuffer[40] = {0}; wifi_set_opmode(STAtiON_MODE); wifi_station_dhcpc_stop(); myEspconn.type = ESPCONN_UDP; myEspconn.state = ESPCONN_NONE; myEspconn.proto.udp->remote_port = UDP_BROADCAST_PORT; // ESP8266 udp remote port myEspconn.proto.udp->local_port = UDP_BROADCAST_PORT; // ESP8266 udp local port remote_ip = IPADDR_NONE; os_memcpy(myEspconn.proto.udp->remote_ip, &remote_ip, 4); wifi_get_macaddr(STATION_IF, hwaddr); os_sprintf(DeviceBuffer, "%s" MACSTR "!", ESP8266_MSG, MAC2STR(hwaddr)); espconn_send(&myEspconn, DeviceBuffer, os_strlen(DeviceBuffer)); Espconn_send 返回错误代码 -4。 有人可以帮我解释一下这里可能出了什么问题。 |
|
相关推荐
1个回答
|
|
您可以参考以下代码来手动发送DHCP发现消息:
``` #include #include WiFiUDP udp_client; IPAddress broadcast_ip(255, 255, 255, 255); uint16_t client_port = 68; // DHCP server port void setup() { WiFi.mode(WIFI_STA); WiFi.disconnect(); udp_client.begin(client_port); } void loop() { uint8_t buffer[] = { 0x01, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x82, 0x53, 0x63, 0x35, 0x01, 0x01, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; udp_client.beginPacket(broadcast_ip, client_port); udp_client.write(buffer, sizeof(buffer)); udp_client.endPacket(); delay(10000); // send every 10 seconds } ``` 注意:DHCP协议的实现需要按照RFC2131中规定的格式进行组包和解析,上面的代码仅实现了最简单的DHCP发现消息格式,如果需要实现完整的DHCP流程,建议使用其他成熟的DHCP库。 |
|
|
|
只有小组成员才能发言,加入小组>>
171个成员聚集在这个小组
加入小组423 浏览 1 评论
1280 浏览 1 评论
596浏览 6评论
491浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
478浏览 5评论
474浏览 4评论
460浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-9 06:10 , Processed in 0.864825 second(s), Total 77, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号