NodeMCUネットワークUDPクライアント要求、サンプルコード(C++開発)
1813 ワード
NodeMCUをudpクライアントとしてudpサービス側のc++コードにアクセスする.
#include
#include
//
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
",
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
", 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
", incomingPacket);
}
}
}
void loop() {
UdpRecv();
}