ESP32 UDP通信

news/2024/5/18 12:07:32 标签: udp, 网络, tcp/ip

一、介绍UDP通信

UDP:无需建立连接就可以发数据。

HTTP:需要双方建立连接才能发数据。

详细介绍链接:

https://blog.csdn.net/qq_39300332/article/details/79139229

二、测试UDP通信

先举个例子,什么是UDP通信呢?

我们习惯使用“ping”命令来测试两台主机之间TCP/IP通信是否正常,其实“ping”命令的原理就是向对方主机发送UDP数据包,然后对方主机确认收到数据包,如果数据包是否到达的消息及时反馈回来,那么网络就是通的。

我们在使用esp32开发板测试一下UDP通信。

1、下载网络调试助手NetAssist。图标长这样(哈哈哈,感觉长得好奇怪):

 首先我们点开它看一下,记住IP地址和端口号,一会要用它。注意:之后ESP32连接的网络和电脑使用的网络在同一WiFi下。

 2、直接上代码测试下。

#include <WiFi.h>
#include <WiFiUdp.h> //引用以使用UDP

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

WiFiUDP Udp;                      //创建UDP对象
unsigned int localUdpPort = 8080; //本地端口号

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

  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  while (!WiFi.isConnected())
  {
    delay(500);
    Serial.print(".");
  }
  Serial.println("Connected");
  Serial.print("IP Address:");
  Serial.println(WiFi.localIP());

  Udp.begin(localUdpPort); //启用UDP监听以接收数据
}

void loop()
{
  int packetSize = Udp.parsePacket(); //获取当前队首数据包长度
  if (packetSize)                     //如果有数据可用
  {
    char buf[packetSize];
    Udp.read(buf, packetSize); //读取当前包数据
    Serial.print("message: ");
    Serial.println(buf);
    Serial.print("From IP: ");
    Serial.println(Udp.remoteIP());
    Serial.print("From Port: ");
    Serial.println(Udp.remotePort());

  }
}

以上代码的例子是esp32作为UDP接收数据的。

我们打开网络调试助手和串口助手。

首先在串口助手上看下esp32的IP地址。

然后打开网络调试助手,如下,框出的区域为目标主机,也就是esp32的IP和端口:

 端口号我们在程序里设置的是8080.

 然后随便发送数据,测试一下。看一下esp这边的串口接收。

 以上,esp32可以收到数据,但是后面又多了乱码,通信是不可靠的。


http://www.niftyadmin.cn/n/188223.html

相关文章

python接口自动化(二)--什么是接口测试、为什么要做接口测试(详解)

什么是接口测试 接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换&#xff0c;传递和控制管理过程&#xff0c;以及系统间的相互逻辑依赖关系等。  一般来说&#xff0c;测试接…

个人如何删除自己的百度百科词条 ?

大家知道百度百科建立起来非常的不容易&#xff0c;但是有时候老板却想把百度百科删掉。其实一些特殊情况下&#xff0c;是删除百度百科需求的&#xff0c;例如公司注销了&#xff0c;人物词条中有一些词条内容不想被查询到&#xff0c;一些品牌词条内容与现在品牌发展的方向不…

[LeetCode周赛复盘] 第 100 场双周赛20230401

[LeetCode周赛复盘] 第 100 场双周赛20230401 一、本周周赛总结二、 [Easy] 6327. 从两个数字数组里生成最小数字1. 题目描述2. 思路分析3. 代码实现三、[Medium] 6328. 找到最大开销的子字符串1. 题目描述2. 思路分析3. 代码实现四、[Medium] 6329. 使子数组元素和相等1. 题目…

HTML是什么?HTML简介

HTML 英文全称是 Hyper Text Markup Language&#xff0c;中文译为“超文本标记语言”&#xff0c;专门用来设计和编辑网页。 使用 HTML 编写的文件称为“HTML 文档”&#xff0c;一般后缀为.html&#xff08;也可以使用.htm&#xff0c;不过比较少见&#xff09;。HTML 文档是…

绿色荧光染料Alexa fluor 488 PEG Biotin,AF-488-PEG-生物素,激发/发射波长约为495nm/520nm

文章关键词&#xff1a;Alexa fluor 488&#xff0c;AF-488染料&#xff0c;绿色荧光染料&#xff0c;试剂仅用于科学研究&#xff0c;不可用于人类&#xff0c;非药用&#xff0c;非食用。 分子式&#xff1a;N/A 分子量&#xff1a;N/A 激发波长(nm)&#xff1a;495nm 发射波…

秒验 手机号码置换接口

功能说明 提交客户端获取到的token、opToken等数据&#xff0c;验证后返回手机号码 调用地址 POST http://identify.verify.mob.com/auth/auth/sdkClientFreeLogin 请求头 Content-Type &#xff1a;application/json 入参说明 字段类型说明必传appkeyStringapp标识YtokenS…

2023值得我们关注的10种软件测试趋势

未来测试的趋势 随着软件在商业和日常生活中继续发挥关键作用&#xff0c;测试将不断发展以满足现代数字环境的需求。客户对软件得质量有着很高的要求并且测试时间应该更加快。因此&#xff0c;组织努力更快、更频繁地交付他们的软件&#xff0c;并且测试过程需要更多地集成到开…

【面试】MyBatis面试题

文章目录MyBatis简介MyBatis是什么&#xff1f;Mybatis优缺点Hibernate 和 MyBatis 的区别ORM是什么为什么说Mybatis是半自动ORM映射工具&#xff1f;它与全自动的区别在哪里&#xff1f;传统JDBC开发存在什么问题&#xff1f;JDBC编程有哪些不足之处&#xff0c;MyBatis是如何…