NodeMCU网络UDP客户端请求,示例代码(C++开发)

本文介绍使用NodeMCU作为UDP客户端访问服务器的C++代码实现。通过ESP8266WiFi和WiFiUdp库,文章详细展示了如何连接WiFi、初始化UDP、发送和接收数据包。适用于物联网和嵌入式系统开发人员。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用NodeMCU作为udp客户端访问udp服务端得c++代码。

#include <ESP8266WiFi.h>

#include <WiFiUdp.h>

//定义全局量
const char* ssid      = "xxx";
const char* password  = "xxxxxx";

//Udp param
WiFiUDP Udp;
unsigned int localUdpPort = 2333; // 本地端口号
char incomingPacket[537];         // 接收缓冲区

void setup() {
  // put your setup code here, to run once:
 Serial.begin(115200);
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
    Serial.println("");
    Serial.println("WiFi connected");
    Serial.println("IP address: ");
    Serial.println(WiFi.localIP());
  }

//init udp
UdpInit();
UdpSend();

}

void UdpInit() {
  //https://www.arduino.cc/en/Reference/WiFi
  //以下开启UDP监听并打印输出信息
  Udp.begin(localUdpPort);
  Serial.printf("Now listening at IP %s, UDP port %d\n", 
  WiFi.localIP().toString().c_str(), localUdpPort);
}

void UdpSend() {
  Udp.beginPacket("device.xxx.com", 9090);
  Udp.write("LED has been turn off"); // 回复LED has been turn off
  Udp.endPacket();
}
void UdpRecv() {
   int packetSize = Udp.parsePacket(); //获取当前队首数据包长度
  if (packetSize)                     // 有数据可用
  {
    Serial.printf("Received %d bytes from %s, port %d\n", packetSize, Udp.remoteIP().toString().c_str(), Udp.remotePort());
    int len = Udp.read(incomingPacket, 536); // 读取数据到incomingPacket
    if (len > 0)                             // 如果正确读取
    {
      incomingPacket[len] = 0; //末尾补0结束字符串
      Serial.printf("UDP packet contents: %s\n", incomingPacket);
    }
  }
}

void loop() {
  UdpRecv();
   
 
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值