1:UDP 传输
UDP 传输不不区分 server 或者 client ,由指令 AT+CIPSTART 建⽴立传输。
1. 配置 WiFi 模式
AT+CWMODE=3 // softAP+station mode
响应 :
OK
2. 连接路路由器器
AT+CWJAP="SSID","password" // SSID and password of router
响应 :
OK
3. 查询 ESP8266 设备的 IP 地址
AT+CIFSR
响应 :
+CIFSR:APIP,"192.168.4.1"
+CIFSR:APMAC,"1a:fe:34:a5:8d:c6"
+CIFSR:STAIP,"192.168.101.133"
+CIFSR:STAMAC,"18:fe:34:a5:8d:c6"
OK
4. PC ESP8266 设备连接同⼀一路路由器器,在 PC 端使⽤用⽹网络调试⼯工具,建⽴立⼀一个 UDP
输。
- 假设,PC 创建的 UDP ⾃自身 IP 地址为 192.168.101.116,端⼝口为 8080
5. 后⽂文将基于前述步骤,介绍两种 UDP 通信的示例例。

 

 

3.1. 固定远端的 UDP 通信
UDP 通信的远端固定,由 AT+CIPSTART 指令的最后⼀一个参数设置为 0 决定。系统将分配
⼀一个连接号给这个固定连接,UDP 通信双⽅方不不会被其他设备替代。
1. 使能多连接
AT+CIPMUX=1
响应 :

 OK

2. 创建 UDP 传输。例例如,分配连接号为 4,指令如下:

AT+CIPSTART=4,"UDP","192.168.101.110",8080,1112,0
响应 :
4,CONNNECT
OK
📖 说明:
示例例指令中的参数说明如下:
"192.168.101.110", 8080 UDP 传输的远端 IP 和端⼝口,即前⽂文步骤 4 PC 建⽴立的 UDP 端⼝口;
1112 ESP8266 本地的 UDP 端⼝口,⽤用户可⾃自⾏行行设置,如不不设置则为随机值;
0 表示当前 UDP 传输建⽴立后,UDP 远端不不会被其他设备更更改;即使有其他设备通过 UDP 协议发数据到
ESP8266 UDP 端⼝口 1112ESP8266 的第 4 UDP 传输的远端也不不会被替换,使⽤用指令
“AT+CIPSEND=4, X” 发送数据,仍然是当前固定的 PC 端收到。
3. 发送数据
AT+CIPSEND=4,7 // Send 7 bytes to transmission NO.4
>UDPtest
// enter the data, no CR
• <link ID>:⽹网络连接 ID 号 (0 ~ 4),⽤用于多
连接的情况
• <length>:数字参数,表明发送数据的⻓长
度,最⼤大⻓长度为 2048
响应 :
Recv 7 bytes
SEND OK
注意:
发送数据时,如果输⼊入的字节数超过了了设置⻓长度(n):
- 系统将提示 busy,并发送数据的前 n 个字节,发送完成后响应 SEND OK
- 超出⻓长度的部分数据被认为是⽆无效数据,不不被接受。
4. 接收数据。 当 ESP8266 设备接收到服务器器发来的数据,将提示如下信息:
+IPD,4,n:xxxxxxxxxx // received n bytes, data=xxxxxxxxxxx
5. 断开 UDP 传输
AT+CIPCLOSE=4
响应 :
4,CLOSED
OK

二:远端可变的 UDP 通信 

当使⽤用 AT+CIPSTART 指令创建 UDP 通信,将最后⼀一个参数设置为 2 时,UDP 通信的远
端可改变。
1. 创建 UDP 传输。
AT+CIPSTART="UDP","192.168.101.110",8080,1112,2
响应 :
CONNNECT
OK
(AT+CIPMUX—设置多连接)
📖 说明:
示例例指令中的参数说明如下:
• "192.168.101.110", 8080 UDP 传输的远端 IP 和端⼝口,即前⽂文 PC 建⽴立的 UDP 端⼝口;
• 1112 ESP8266 本地的 UDP 端⼝口,⽤用户可⾃自⾏行行设置,如不不设置则为随机值;
2 表示当前 UDP 传输建⽴立后,UDP 传输远端仍然会更更改;UDP 传输远端会⾃自动更更改为最近⼀一个与
ESP8266 UDP 通信的远端。
2. 发送数据
AT+CIPSEND=7 // Send 7 bytes
>UDPtest
// enter the data, no CR
响应 :
Recv 7 bytes
SEND OK
注意:
发送数据时,如果输⼊入的字节数超过了了设置⻓长度(n):
- 系统将提示 busy,并发送数据的前 n 个字节,发送完成后响应 SEND OK
- 超出⻓长度的部分数据被认为是⽆无效数据,不不被接受。

 

3. 发送数据到其他指定远端。例例如,发数据到 192.168.101.111, 端⼝口 1000
AT+CIPSEND=7,"192.168.101.111",1000 // Send 7 bytes
>UDPtest
// enter the data, no CR
响应 :
Recv 7 bytes
SEND OK
4. 接收数据。 当 ESP8266 设备接收到服务器器发来的数据,将提示如下信息:
+IPD,n:xxxxxxxxxx // received n bytes, data=xxxxxxxxxxx
5. 断开 UDP 传输
AT+CIPCLOSE
响应 :
CLOSED
OK

今日心得: 

1:单连接 TCP Client和UDP 传输的区别

1. 连接性质
特性TCP ClientUDP 传输
连接类型面向连接(需三次握手)无连接
可靠性可靠传输(自动重传、数据校验)不可靠传输(可能丢包/乱序)
数据边界字节流(无明确边界)数据报文(保留边界)
传输顺序保证数据顺序不保证顺序
 AT指令实现差异(以ESP8266为例)

TCP Client 示例

AT+CIPSTART="TCP","192.168.1.100",80  # 连接固定服务器
AT+CIPSEND=10                         # 发送10字节数据
> HelloWorld                          # 输入数据
  • 特点:始终发往同一目标,断开需显式AT+CIPCLOSE

UDP 传输示例

AT+CIPSTART="UDP","192.168.1.101",9000,0,2  # 可变远端模式
AT+CIPSEND=5,"192.168.1.102",8000   # 临时切换目标
> Hi123                              # 发送数据
  • 特点:无需断开即可切换目标,支持广播

 

何时选择?

  • 选 TCP Client 当:

    • 需要可靠传输(如固件升级)

    • 与固定服务器通信(如MQTT服务器)

    • 传输大文件/重要数据

  • 选 UDP 传输 当:

    • 需要低延迟(如实时控制)

    • 需广播或动态切换目标

    • 容忍少量丢包(如传感器数据上报)

    • 资源受限环境(内存/CPU有限)

 

2:

详细解释:UDP通信中的远端IP与近端IP

1. 远端IP vs 近端IP
概念远端IP近端IP
定义通信目标设备的IP地址(数据接收方)本地设备自身的IP地址(数据发送方)
作用指定数据要发送到哪个设备指定从哪个设备端口发出数据
AT指令示例AT+CIPSTART="UDP","192.168.101.110",8080本地端口在指令中作为第4个参数(如1112
何时使用当需要发送数据到特定设备时当需要绑定本地固定端口接收数据时

关键区别

  • 远端IP是目标:你发给谁(如服务器/另一设备)。

  • 近端IP是源:你是谁(本地设备身份),通常由路由器分配,无需手动设置。

2. 固定远端 vs 可变远端UDP通信
固定远端(参数=0)
  • 特点
    一旦建立连接,所有数据只能发往初始设定的远端IP

  • 指令示例
    AT+CIPSTART="UDP","192.168.101.110",8080,1112,0
    (末尾参数0表示固定远端)

  • 适用场景
    与单一固定设备通信(如固定服务器)。

可变远端(参数=2)
  • 特点

    • 可动态切换目标设备。

    • 自动更新机制:当其他设备向你的本地端口发送数据时,ESP8266会自动将该设备设为新远端

    • 手动覆盖:可通过指令临时指定新目标。

  • 指令示例
    AT+CIPSTART="UDP","192.168.101.110",8080,1112,2
    (末尾参数2表示可变远端)

  • 适用场景
    需与多个设备通信(如物联网设备群)

 

3. 为什么后续发送又回到原远端?

在可变远端模式下,远端切换是临时的

  1. 首次发送到新目标

    bash

    AT+CIPSEND=7,"192.168.101.111",1000  # 临时指定新目标
    > UDPtest
    • 此时数据发往 192.168.101.111:1000

    • 但ESP8266的“当前远端”仍为初始值192.168.101.110:8080)。

  2. 后续发送时未指定目标

    bash

    AT+CIPSEND=7          # 未指定目标,使用"当前远端"
    > NextData
    • 数据会自动发回初始远端192.168.101.110:8080),因为未覆盖目标。

 

3.远端自动更新的条件
只有当其他设备主动发送数据到你的本地端口时,ESP8266才会更新"当前远端"。
(例如:若192.168.101.111向你的端口1112发送数据,后续AT+CIPSEND=7会发往该设备)

 

核心总结

场景远端选择逻辑
固定远端模式永远发往初始设定的IP
可变远端模式 + 指定目标临时覆盖目标(仅本次生效)
可变远端模式 + 未指定目标发往"当前远端"(初始值 或 最后一次主动与你通信的设备)
更新"当前远端"的方法其他设备需主动发送数据到你的本地端口

操作建议
若需持续与某新设备通信,每次发送时显式指定目标IP,或确保该设备先向你的端口发送数据以触发自动更新。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/88295.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/88295.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/88295.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大健康IP如何用合规运营打破“信任危机”|创客匠人

一、行业乱象下的信任裂痕当前大健康领域私域直播乱象频发&#xff0c;部分机构利用“假专家义诊”“限量抢购”等话术&#xff0c;将低成本保健品高价卖给老人&#xff0c;甚至有技术公司提供“全链路坑老方案”&#xff0c;加剧行业信任危机。这种短视行为不仅损害消费者权益…

MySQL(122)如何解决慢查询问题?

解决慢查询问题通常涉及到多种技术和方法&#xff0c;以确保数据库查询的高效性和响应速度。以下是详细步骤和示例代码&#xff0c;阐述如何解决慢查询问题。 一. 慢查询的常见原因 缺少索引&#xff1a;查询未使用索引或索引未优化。查询不当&#xff1a;查询语句本身书写不合…

esp32在vscode中仿真调试

此方法可以用在具有usb serial jtag功能的esp32芯片用&#xff0c;支持型号&#xff1a; ESP32-C3 ESP32-S3 ESP32-C6 ESP32-H2 ESP32-C5 USB Serial JTAG功能介绍&#xff1a; 从硬件角度&#xff1a; 它是ESP32芯片内置的硬件功能 不是一个独立的物理接口 是通过USB接口实…

蓝桥云课 矩形切割-Java

目录 题目链接 题目 解题思路 代码 题目链接 竞赛中心 - 蓝桥云课 题目 解题思路 找最大的正方形就是大边-n个小边&#xff0c;直至相等或者小于1 代码 import java.util.Scanner; // 1:无需package // 2: 类名必须Main, 不可修改public class Main {public static voi…

PostgreSQL 锁等待监控,查找等待中的锁

直接贴SQLWITH RECURSIVE l AS (SELECT pid, locktype, mode, granted, ROW(locktype,database,relation,page,tuple,virtualxid,transactionid,classid,objid,objsubid) objFROM pg_locks ), pairs AS (SELECT w.pid waiter, l.pid locker, l.obj, l.modeFROM l wJOIN l ON l.…

Elasticsearch 字符串包含子字符串:高级查询技巧

作者&#xff1a;来自 Elastic Justin Castilla 想要获得 Elastic 认证&#xff1f;看看下一次 Elasticsearch Engineer 培训什么时候开始吧&#xff01; Elasticsearch 拥有大量新功能&#xff0c;可以帮助你为你的使用场景构建最佳的搜索解决方案。深入了解我们的示例 noteb…

Vue、Laravel 项目初始化命令对比 / curl 命令/ CORS 机制总结与案例

前言一个疑问衍生出另一个疑问再衍生出又一个疑问&#xff0c;于是有了这篇文章。一、Vue 项目初始化命令 基于 Vite 创建 Vue 项目 命令&#xff1a;npm create vitelatest my-project -- --template vue适用场景&#xff1a;需轻量级、高速开发环境关键点&#xff1a;使用 Vi…

Jenkins 流水线配置

Jenkinsfile dsl文件:pipeline {// 指定任务在哪个集群节点执行agent any// 声明全局变量environment {keyvalueAPPLICATION_NAMEspringboot-demo // 项目名称HOST_PORT7777 // 宿主机暴露服务端口CONTAINER_PORT8080 // 容器内部服务端口…

服务器重装后如何“复活”旧硬盘上的 Anaconda 环境?—— 一次完整的排错与恢复记录

目录 摘要 一、 背景&#xff1a;熟悉的陌生人 二、 问题浮现&#xff1a;一次次失败的尝试 问题一&#xff1a;source activate 失效&#xff0c;被写死的旧路径 问题二&#xff1a;官方安装器修复失败&#xff0c;神秘的“进程池损坏” 问题三&#xff1a;核心脚本也“背…

Redis的多并发实际业务场景下的使用分析:布隆过滤器

文章目录前言什么是布隆过滤器项目中引入布隆过滤器与缓存结合的最佳实践场景&#xff1a;高并发用户访问商品详情页&#xff08;防止缓存穿透&#xff09;总结&#xff1a;前言 okok 我们已经学完了 所有的redis中的常用的数据结构 下面就是进阶 我会用一系列的例子 去讲解 如…

【AI】人工智能领域关键术语全解析

一、前言 人工智能&#xff08;AI&#xff09;作为当今最热门的技术领域之一&#xff0c;正在深刻改变着我们的生活和工作方式。然而&#xff0c;对于初学者或非技术背景的人士来说&#xff0c;理解AI领域的专业术语可能是一项挑战。本文旨在全面解析人工智能领域的关键术语&a…

【Linux基础知识系列】第四十三篇 - 基础正则表达式与 grep/sed

在Linux系统中&#xff0c;正则表达式是一种强大的文本处理工具&#xff0c;广泛用于文本搜索、替换和批量处理。通过掌握基础正则表达式的语法&#xff0c;结合grep和sed命令&#xff0c;用户可以高效地完成复杂的文本处理任务。无论是数据分析师、软件开发者还是系统管理员&a…

SIMATIC S7-1200的以太网通信能力:协议与资源详细解析

SIMATIC S7-1200的以太网通信能力&#xff1a;协议与资源解析 在工业自动化领域&#xff0c;PLC的通信能力往往直接影响着整个控制系统的灵活性与高效性。西门子SIMATIC S7-1200系列PLC作为一款广泛应用的中小型控制器&#xff0c;其强大的以太网通信功能是其核心优势之一。本文…

什么是高防 IP?从技术原理到实战部署的深度解析

目录 前言 一、高防 IP 的定义与核心价值 二、高防 IP 的技术原理与架构 2.1 流量牵引技术 2.2 流量清洗引擎 2.3 回源机制 三、高防 IP 的核心防护技术详解 3.1 DDoS 攻击防御技术 3.2 高防 IP 的弹性带宽设计 四、实战&#xff1a;基于 Linux 的高防 IP 环境配置 …

NW710NW713美光固态闪存NW719NW720

美光NW系列固态闪存深度解析&#xff1a;技术、性能与市场洞察一、技术架构与核心创新美光NW系列固态闪存&#xff08;包括NW710、NW713、NW719、NW720&#xff09;的技术根基源于其先进的G9 NAND架构。该架构通过5纳米制程工艺和多层3D堆叠技术&#xff0c;在单位面积内实现了…

JVM汇总

1.什么是JVM&#xff1f;Java虚拟机&#xff0c;Java具有自动内存管理等一系列特性&#xff0c;为实现Java跨平台&#xff0c;一次编译处处执行。2.JVM结构图3.类加载器-入口加载class文件&#xff0c;将类信息存放到运行时数据区的方法区内存空间中通过魔数和文件格式来判断是…

2024.09.20 leetcode刷题记录

# 前言 昨天发布了第一遍博客&#xff0c;感觉很好&#xff0c;趁着我现在还是很感兴趣就多发几遍&#xff0c;希望能坚持下去&#xff0c;在这里记录下自己学习成长的经历。 今天是周五&#xff0c;下周一就又要去实习啦&#xff0c;距离上一段实习刚结束一个月&#xff0c;之…

SQLite3 中列(变量)的特殊属性

在 SQLite3 中&#xff0c;列的特殊属性通常通过约束&#xff08;Constraints&#xff09;和数据类型修饰符来定义。这些属性可以在创建表时指定&#xff0c;用于限制数据的完整性或定义特殊行为。以下是 SQLite3 支持的主要特殊属性及其说明&#xff1a; 1. 主键约束&#xff…

Datawhale AI 夏令营:用户洞察挑战赛 Notebook(2)

针对文本聚类优化 优化TF-IDF特征工程# 调整ngram_range&#xff1a;设置为(1, 2)&#xff0c;捕捉单字和双字词&#xff08;如“不错”“不满意”&#xff09;。 # 限制特征数量&#xff1a;通过max_features5000保留高信息密度特征&#xff0c;降低维度。 # 过滤低频/高频词&…

【博主亲测可用】PS2025最新版:Adobe Photoshop 2025 v26.8.1 激活版(附安装教程)

软件简介 Adobe Photoshop 2025是Adobe公司开发的一款图像处理软件。作为行业标准的数字图像编辑工具&#xff0c;其核心定位是创意设计、后期摄影、3D建模和AI驱动创作&#xff0c;适用于专业设计师、摄影师、插画家和多媒体创作者。界面设计简单直观&#xff0c;易于操作&…