目录
目录
前言
上一篇中写了如何在PC上搭建UDP服务器,本例中作为通信的客户端采用的是ESP8266,本文记录如何将ESP8266作为UDP客户端。
一、UDP客户端连接
#include<ESP8266WiFi.h>
#include<WiFiUdp.h>
#define wifiName "" //这里填WIFI名称
#define password "" //这里填WIFI密码
WiFiUDP Udp;
unsigned int localUdpPort = 8266; //端口
//设置固定IP
IPAddress local_IP(192, 168, 1, 1);
IPAddress gateway(192, 168, 0, 1);
IPAddress subnet(255, 255, 255, 0);
IPAddress dns(8,8,8,8);
void setup(){
Serial.begin(9600);
Serial.printf("connecting WIFI %s",wifiName);
WiFi.config(local_IP,gateway,subnet,dns);
WiFi.mode(WIFI_STA); //将WIFI设置为STA模式
WiFi.begin(wifiName,password);
while(WiFi.status()!=WL_CONNECTED){
delay(1000);
Serial.println("\r\connecting...");
}
Serial.println("connected");
if(Udp.begin(localUdpPort)){
Serial.printf("listening IP:%s, UdpPort:%d\n",WiFi.localIP().toString().c_str(),localUdpPort); //在UDP服务器中填这个localIP地址,确保信息是传输到这个客户端
}
else{
Serial.println("listen failed");
}
}
void loop(){
int packetSize = Udp.parsePacket();
if(packetSize){
char val = Udp.read(); //val为接收到的信息
Serial.println(val);
}
}
二、注意事项
连接WIFI与TCP客户端操作一致,当连接WIFI成功后进行通讯,这里需要注意将串口打印的localIP地址填到UDP服务器的IP位置,确保服务器发送的信息传输到该客户端,避免信息传输混乱。