当前位置:首页 > 编程技术 > Arduino > 正文内容

ESP8266 – WiFiUDP库 – remoteIP

曾经3年前 (2022-05-13)Arduino1047

说明

此函数用于获取向ESP8266开发板发送UDP数据包设备的IP地址。
注:在调用 此函数前需要先调用parsePacket函数让ESP8266开发板对接收到的UDP数据进行初始检查。

语法

wiFiUDP.remoteIP()

参数

返回值

此函数的返回值是向ESP8266开发板发送UDP数据包设备的IP地址。数据类型是IPAddress。

示例程序

关于本函数的具体使用方法,请参考以下代码,尤其是代码中高亮的语句部分。

#include <ESP8266WiFi.h>
#include <WiFiUdp.h>
 
#define ssid      "TaichiMaker_WIFI" //这里改成你的设备当前环境下WIFI名字
#define password  "12345678"         //这里改成你的设备当前环境下WIFI密码
 
WiFiUDP Udp;//实例化WiFiUDP对象
unsigned int localUdpPort = 1234;  // 自定义本地监听端口
unsigned int remoteUdpPort = 4321;  // 自定义远程监听端口
char incomingPacket[255];  // 保存Udp工具发过来的消息
char  replyPacket[] = "Hi, this is esp8266\n";  //发送的消息,仅支持英文
 
void setup()
{
  Serial.begin(115200);//打开串口
  Serial.println();
 
  Serial.printf("正在连接 %s ", ssid);
  WiFi.begin(ssid, password);//连接到wifi
  while (WiFi.status() != WL_CONNECTED)//等待连接
  {
    delay(500);
    Serial.print(".");
  }
  Serial.println("连接成功");
 
  if(Udp.begin(localUdpPort)){//启动Udp监听服务
    Serial.println("监听成功");
    //打印本地的ip地址,在UDP工具中会使用到
    //WiFi.localIP().toString().c_str()用于将获取的本地IP地址转化为字符串    
    Serial.printf("现在收听IP:%s, UDP端口:%d\n", WiFi.localIP().toString().c_str(), localUdpPort);
  }else{
    Serial.println("监听失败");
  }
}
 
void loop()
{
  //解析Udp数据包
  int packetSize = Udp.parsePacket();//获得解析包
  if (packetSize)//解析包不为空
  {
    //收到Udp数据包
    //Udp.remoteIP().toString().c_str()用于将获取的远端IP地址转化为字符串
    Serial.printf("收到来自远程IP:%s(远程端口:%d)的数据包字节数:%d\n", Udp.remoteIP().toString().c_str(), Udp.remotePort(), packetSize);
      
    // 读取Udp数据包并存放在incomingPacket
    int len = Udp.read(incomingPacket, 255);//返回数据包字节数
    if (len > 0)
    { 
      incomingPacket[len] = 0;//清空缓存
    }
    //向串口打印信息
    Serial.printf("UDP数据包内容为: %s\n", incomingPacket);
 
    //向udp工具发送消息
    Udp.beginPacket(Udp.remoteIP(), remoteUdpPort);//配置远端ip地址和端口
    Udp.write(replyPacket);//把数据写入发送缓冲区
    Udp.endPacket();//发送数据
  }
}


扫描二维码推送至手机访问。

版权声明:本文由珍惜发布,如需转载请注明出处。

本文链接:https://www.zp68.com/article/25.html

分享给朋友:

“ESP8266 – WiFiUDP库 – remoteIP” 的相关文章

ESP8266 驱动 DS18B20

ESP8266 驱动 DS18B20

1.效果展示:利用esp8266驱动1.3寸OLED显示屏显示出ds18b20模块所采集的当前实测温度数据,效果如下图:2.DS18b20温度模块电路图: 需要添加一个10k的上拉电阻。接线顺序: ESP8266OLED 屏幕DS18B20GNDGNDGNDVCCVCCVCCIO...

Arduino ESP8266 串口 Serial.begin()用法及代码示例

说明设置串行数据传输的数据速率(以比特/秒(波特)为单位)。为了与串行监视器通信,请确保使用其屏幕右下角菜单中列出的波特率之一。但是,您可以指定其他速率 - 例如,通过引脚 0 和 1 与需要特定波特率的组件进行通信。可选的第二个参数配置数据、奇偶校验和停止位。默认为 8 个数据位,无奇偶校验,1...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。