完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
您好,
我想使用 arduino IDE 通过 UDP 协议在两个 nodemcu esp8266 作为客户端和没有家庭路由器的服务器之间建立通信,上传代码后,服务器仅向客户端发送数据包,但客户端无法发送回复。我如何在它们之间进行双向通信 我不知道是什么问题 我引入了两个用于客户端和服务器 代码的 IP 地址: #include #include #include const char *ssid = "********"; const char *pass = "*****"; 无符号整数 localPort = 2000; // 监听 UDP 数据包的本地端口 IPAddress ServerIP(192,168,4,1); IP地址客户端IP(192,168,4,3); // 一个 UDP 实例,让我们通过 UDP 发送和接收数据包 WiFiUDP udp; 字符 packetBuffer[255]; //我们从哪里获取 UDP 数据 char replyBuffer[99] = "您好!收到消息"; // 要发回的回复字符串 //======================================== ============================== // 设置 //=============== ================================================ ===== void setup() { Serial.begin(115200); 序列号.println(); WiFi.begin(ssid, pass); //连接到接入点 Serial.println(""); // 等待连接 while (WiFi.status() != WL_CONNECTED) { delay(500); 序列号.print("."); } Serial.println(""); Serial.print("连接到"); 序列号.println(ssid); Serial.print("IP地址:"); Serial.println(WiFi.localIP()); //开始UDP Serial.println("Starting UDP"); udp.begin(本地端口); Serial.print("本地端口:"); Serial.println(udp.localPort()); } //=============================================== ======================= // 主循环 //===================== ================================================= 无效loop() { int cb = udp.parsePacket(); { UDP。 udp.write(replyBuffer,99); //发送一个字节到ESP8266 udp.endPacket(); 延迟(1000); } // 我们已经收到一个 UDP 数据包,将它发送到串行 udp.read(packetBuffer, 255); // 将数据包读入缓冲区,我们只读取一个字节 Serial.print(packetBuffer); 延迟(2000); } //=============================================== ======================== 服务器代码为: #include #include #include const char *ssid = "********"; const char *pass = "******"; 无符号整数 localPort = 2000; // 监听 UDP 数据包的本地端口 IPAddress ServerIP(192, IP地址客户端IP(192,168,4,2); // 一个 UDP 实例,让我们通过 UDP 发送和接收数据包 WiFiUDP udp; char packetBuffer[]="此缓冲区仅用于服务器测试"; //我们在哪里获取UDP数据 char replyBuffer[99]; //================================================ ======================= // 设置 //====================== ================================================= 无效setup() { Serial.begin(115200); 序列号.println(); WiFi.softAP(ssid, pass); //创建接入点 //启动UDP Serial.println("Starting UDP"); udp.begin(本地端口); Serial.print("本地端口:"); Serial.println(udp.localPort()); } //=============================================== ======================= // 主循环 //===================== ================================================= 无效loop() { int cb = udp.parsePacket(); { udp.beginPacket(ClientIP, 2000); udp.write(packetBuffer,255); //发送一个字节到ESP8266 udp.endPacket(); 延迟(1000); } udp.read(replyBuffer, 99); // 将数据包读入缓冲区,我们只读取一个字节 Serial.print(replyBuffer); 延迟(2000); } //================================================ ====================== |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
527浏览 6评论
438浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
425浏览 5评论
421浏览 4评论
396浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-5 10:59 , Processed in 0.725136 second(s), Total 43, Slave 37 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号