1. 程式人生 > 其它 >【ESP8266】 UDP伺服器

【ESP8266】 UDP伺服器

本程式碼主要實現了,監聽一個UDP埠,並且在收到訊息後,向傳送端返回一個Hello字串

#include <ESP8266WiFi.h>
#include <WiFiUdp.h>

const char* ssid = "xxxxxx";
const char* password = "xxxxx";

WiFiUDP Udp;
unsigned int localUdpPort = 4210; 
char incomingPacket[255];  
char  replyPacket[] = "Hi there! Got the message :-)"; 


void setup()
{
  Serial.begin(9600);
  Serial.println();

  Serial.printf("Connecting to %s ", ssid);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED)
  {
    delay(500);
    Serial.print(".");
  }
  Serial.println(" connected");
//開始UDP監聽
  Udp.begin(localUdpPort);
  Serial.printf("Now listening at IP %s, UDP port %d\n", WiFi.localIP().toString().c_str(), localUdpPort);
}
void loop()
{
  int packetSize = Udp.parsePacket();
  if (packetSize)//解析包不為空
  {
    Serial.printf("收到來自遠端IP:%s(遠端埠:%d)的資料包位元組數:%d\n", Udp.remoteIP().toString().c_str(), Udp.remotePort(), packetSize);
    String udpStringVal = Udp.readString(); 
    Serial.print("開發板接收到UDP資料中的字串 "); Serial.println(udpStringVal);
    //向udp工具傳送訊息
    Udp.beginPacket(Udp.remoteIP(), Udp.remotePort());//配置遠端ip地址和埠
    Udp.write("Hello");//把資料寫入傳送緩衝區
    Udp.endPacket();//傳送資料
  }
}