认识 ESP8266—ESP-01S (含AT指令)_esp01s-程序员宅基地

技术标签: STM32  网络  网络协议  tcp/ip  

认识 ESP8266(ESP-01S)



前言

了解完本文内容,可以去观看我的另一篇文章-----》 STM32—通过HC05配置ESP8266(ESP01s)获取时间和天气

ESP8266(ESP-01S) 简介

ESP8266 是串口型 WIFI,速度比较低,不能用来传输图像或者视频这些大容量的数据,主要应用于数据量传输比较少的场合,比如温湿度信息,一些传感器的开关量等。

ESP8266 的 AT指令

AT指令是应用于终端设备与PC应用之间的连接与通信的指令,说白了,AT指令就是大家定义好的,能表达特殊意义的字符串,每条AT命令中只能包含一条AT指令,就比如说A发送:“吃饭了”,B就会回复:“好的”。

AT指令用法:

  • 测试命令(Test Command)

    • 仅仅发送指令 “AT” 即测试ESP8266模块是否准备好,若准备好则响应“OK”。
  • 读取命令(Read Command)

    • 在AT指令后面加上“=?”即构成测试命令。例如“AT+MODE?”,会列举当前是什么模式。
  • 执行命令(Execute Command)

    • 在AT指令后面加上“=”再接上相应的参数即可,例如“AT+MODE=NORMAL”,将当前模式设置为正常模式。对于一些没有参数的指令则不需要加参数, 比如”AT+RESET”。

AP/STA模式

ESP8266为一个WiFi透传模块,和蓝牙透传模块具有主从两种工作模式一样,也具有两种工作模式:STA模式(Station)和AP模式(Access Point),一般WiFi模块还会有一个STA+AP模式,即可以在两种模式下切换的状态。
  AP模式下,WiFi模块产生热点,提供无线接入服务,允许其它无线设备接入,提供数据访问,一般的无线路由/网桥工作在该模式下。该模式对应TCP传输协议中的服务端(TCP Server)
  STA模式下,WiFi模块为连接到无线网络的终端(站点),可以连接到AP,一般无线网卡工作在STA模式下。该模式对应TCP传输协议中的客户端(TCP Client)

TCP/UDP/透传

TCP

TCP是一种面向连接的,提供可靠交付服务和全双工通信的,基于字节流的端到端的传输层通信协议。

  1. TCP在传输数据之前必须先建立连接,数据传输结束后要释放连接。
  2. 每一条TCP连接只能有2个端点,故TCP不提供广播或多播服务。
  3. TCP提供可靠交付,通过TCP连接传输的数据,无差错、不丢失、不重复、并且按序到达。
  4. TCP是面向字节流的。虽然应用进程和TCP的交互是一次一个数据块(大小不等),但TCP把应用程序交下来的数据看成仅仅是一连串的无结构的字节流。TCP并不知道所传输的字节流的含义。

UDP

UDP是一种无连接的,尽最大努力交付的,基于报文的端到端的传输层通信协议。

  1. UDP,在发送数据之前不需要建立连接。
  2. UDP不保证可靠交付,主机不需要位置复杂的连接状态。
  3. UDP是面向报文的。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的的边界,即应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。在接收端,UDP一次交付一个完整的报文。
  4. UDP没有拥塞控制,网络出现的拥塞不会使源主机的发送速率降低。
  5. UDP支持一对一、一对多、多对一和多对多的交互通信。
  6. UDP的首部开销小,只有8个字节,比TCP的20个字节的首部要短。

透传

透传,又称透明传输,具体来说就是“输入即输出(如从WiFi模块串口输入的字符会透传到服务器端)”,数据不改变,不同协议之间的转换(如串口到WiFi、蓝牙等)由模块完成。使用者无需关心内部具体实现,因此模块对于使用者是“透明的”、似乎不存在的(因为可无视中间的实现原理)。一个高度封装的模块,应该隐藏内部实现细节,仅对外提供使用接口。

固件

固件是写入存储器中的程序,在单片机中就是写到Flash中的程序。

实物图片

在这里插入图片描述

连接方式

先说USB转TTLesp8266的接法

USB转TTL模块 esp8266
RXD TX
TXD RX
GND GND
3.3V 3.3V
VCC EN

说明

1.TXD发送引脚、RXD接收引脚,发送对接收,所以USB转TTL与esp8266的RXD、TXD交叉相接。

2.3.3V相接后可能无法启动esp8266,这是因为USB转TTL的3.3V引脚并没有真的达到3.3V,不要慌直接将esp8266的3.3V引脚接入USB转TTL的5V引脚,如果esp8266突然就发热并且烫的无法触摸,立马拔掉,如果说温度你的触感还能接受,那就没问题,毕竟牛X的esp8266没那么脆弱。

3.esp8266的EV引脚有些可能会标注成CH_PD,不要怕功能一样的,接线方式也是一样的

上电:正常工作验证

本模块(ESP01s)可以工作在三种模式:1. STA 2 .AP 3 .AP+STA

上电后,蓝色灯微弱闪烁后熄灭,红灯长亮。

初始波特率为115200

注意:发送命令的时候,勾选上“发送新行

可以使用 AT+CWMODE?进行查询

image-20220823144123921


AP 模式

1. 建立 AP

(1)重启模块

发送命令:AT+RST(执行指令)

指令:AT+RST

响应:OK

(2)设置模块

发送命令:AT+CWMODE=3 AT+CWMODE=2 (设置指令)

指令:AT+CWMODE=

说明::1-Station模式,2-AP模式,3-AP兼Station模式

响应:OK

说明:需重启后生效(AT+RST)

image-20220823153413415

(3)配置 AP 参数

发送命令:AT+CWSAP="ESP8266","12345678",1,3 (设置指令)

指令:AT+ CWSAP= ,,,

说明:指令只有在AP模式开启后有效

:字符串参数,接入点名称

:字符串参数,密码最长64字节,ASCII

:通道号

< ecn >:0-OPEN,1-WEP,2-WPA_PSK,3-WPA2_PSK,4-WPA_WPA2_PSK

响应:OK

image-20220823153508457

刷新无线网络列表,可见到 SSID 为 ESP8266的无线网络列于其中(进行连接):

image-20220823153553967

注意:此时连接网络会可能出现连接不上的情况,请发送 AT+RST 命令并等待几分钟之

后再连接

(4)查看已接入设备的 IP

连接上 ESP8266 发送命令:AT+CWLIF(执行指令)

指令:AT+CWLIF

说明:查看已接入设备的 IP

响应:

OK

说明::已接入设备的 IP 地址

image-20220823154103869

(5)查询本机 IP 地址

发送命令:AT+CIFSR(执行指令)

指令:AT+CIFSR

说明:查看本模块的 IP 地址

注意:AP 模式下无效!会造成死机现象!

响应:

说明::本模块 IP 地址

image-20220823154028085

但实际测试中并未发生死机现象。

查看本机配置模式:CWMODE=,为 AP 模式。

发送命令:AT+CIFSR=?(测试指令),返回响应如下:

同样未出现死机现象。

2. Server 方法收发

(1)开启多连接模式

发送命令:AT+CIPMUX=1(设置指令)

指令:AT+CIPMUX=

说明::0-单路连接模式,1-多路连接模式

响应:OK

image-20220823160126958

(2)创建服务器

发送命令:AT+CIPSERVER=1,8080(设置指令)

指令:AT+CIPSERVER=[,]

说明::0-关闭 server 模式,1-开启 server 模式

:端口号,缺省值为 333

响应:OK

说明:(1) AT+ CIPMUX=1 时才能开启服务器;关闭 server 模式需要重启

(2)开启 server 后自动建立 server 监听,当有 client 接入会自动按顺序占用一个连接。

开启 server 服务如下图所示

image-20220823160309165

关闭 server 服务如下图所示:

image-20220823160437217

打开 fireTools.exe,点击 Connect 按钮连接不上,可知 server 服务未开启

注意:服务器IP为ESP8266的IP地址AT+CIFSR可以查询

来自野火的调试工具

链接:https://pan.baidu.com/s/1J6oE03EcvzPqaZmM20pchQ
提取码:1234
–来自百度网盘超级会员V1的分享

image-20220823162522077

重新开启 server 服务(注意:之前需要再发送一遍 AT+CIPMUX=1以重新开启多连接模式)。

点击 Connect 按钮

image-20220823163225189

连接成功后,串口收到模块返回的数据串:0,CONNECT

180S(默认值)后,连接自动断开,返回 0,CLOSED,客户端的相应按钮变成灰色。

全过程如下图:

image-20220823163340649

(3) 设置服务器超时时间

发送命令 AT+CIPSTO=2880 (设置指令)

指令:AT+CIPSTO=

说明:

响应:OK

image-20220823163453305

(4) 建立客户端

注意:服务器IP为ESP8266的IP地址AT+CIFSR可以查询

image-20220823163528090

(5) 查看当前连接

发送命令 AT+CIPSTATUS (执行指令)

指令:AT+CIPSTATUS

响应:STATUS: + CIPSTATUS:,,,,

​ OK

说明:

:连接的 id 号 0-4

:字符串参数,类型 TCP 或 UDP

:字符串参数,IP 地址

:端口号

: 0-本模块做 client 的连接,1-本模块做 server 的连接

image-20220823163804187

(6) 向某个连接发送数据

发送命令 AT+CIPSEND=0,6(设置指令) (通过上一条指令 AT+CIPSTATUS 得知 ID=0)

指令:

1)单路连接时(+CIPMUX=0),指令为:AT+CIPSEND=

2)多路连接时(+CIPMUX=1) ,指令为: AT+CIPSEND= ,

响应:

收到此命令后先换行返回”>”,然后开始接收串口数据

当数据长度满 length 时发送数据。

如果未建立连接或连接被断开,返回 ERROR

如果数据发送成功,返回 SEND OK

说明:

:需要用于传输连接的 id 号

:数字参数,表明发送数据的长度,最大长度为 2048

image-20220823164127065

image-20220823164928020

此时连接已建立,可以进行数据的双向收发。

image-20220823165041809

3. Client 方法收发

(0) 关闭 server 服务 (如果没有开启 server 服务,可免除此步骤)

发送命令:AT+CIPSERVER=0(设置指令)

指令:AT+CIPSERVER=[,]

说明::0-关闭 server 模式,1-开启 server 模式

:端口号,缺省值为 333

响应:OK

说明:(1) AT+ CIPMUX=1 时才能开启服务器;关闭 server 模式需要重启

(2)开启 server 后自动建立 server 监听,当有 client 接入会自动按顺序占用一个连

接。

关闭 server 服务如下图所示:

image-20220823165258378

并重启AT+RST

(1) 创建服务器

查看PC端连接设备的IP

image-20220823165611554

image-20220823165717148

启动监听

image-20220823165745761

(2) 开启多连接模式

发送命令:AT+CIPMUX=1(设置指令)

指令:AT+CIPMUX=

说明::0-单路连接模式,1-多路连接模式

响应:OK

image-20220823165856415

(3) 建立 TCP 连接

发送命令 AT+CIPSTART=0,"TCP","192.168.4.2",8080 (设置指令)

指令:1)单路连接时(+CIPMUX=0),指令为:AT+CIPSTART= ,,

2)多路连接时(+CIPMUX=1),指令为:AT+CIPSTART=,,,

响应:如果格式正确且连接成功,返回 OK,否则返回 ERROR

如果连接已经存在,返回 ALREAY CONNECT

说明::0-4,连接的 id 号

:字符串参数,表明连接类型,”TCP”-建立 tcp 连接,”UDP”-建立 UDP 连接

:字符串参数,远程服务器 IP 地址

:远程服务器端口号

如下图所示:

image-20220823170104717

(4) 向服务器发送数据

发送命令 AT+CIPSEND=0,10(设置指令)(通过上一条指令 AT+CIPSTART 设置为 ID=0)

指令:1)单路连接时(+CIPMUX=0),指令为:AT+CIPSEND=

2)多路连接时(+CIPMUX=1) ,指令为: AT+CIPSEND= , 响应:收到此命令后先换行返回”>”,然后开始接收串口数据

当数据长度满 length 时发送数据。

如果未建立连接或连接被断开,返回 ERROR

如果数据发送成功,返回 SEND OK

说明::需要用于传输连接的 id 号

:数字参数,表明发送数据的长度,最大长度为 2048

image-20220823170304221

此时连接已建立,可以进行数据的双向收发。用服务器向 ESP8266 发送数据,正常。

image-20220823170354730

STA模式

1.建立 STA

(1) 重启模块

发送命令:AT+RST(执行指令)

指令:AT+RST

响应:OK

image-20220823170559097

(2) 设置模块

发送命令:AT+CWMODE=3AT+CWMODE=1(设置指令)

指令:AT+CWMODE=

说明::1-Station模式,2-AP模式,3-AP兼Station模式

响应:OK

说明:需重启后生效(AT+RST)

image-20220823170643538

将模块设置为模式 1,此时刷新网络列表可见由 ESP8266 建立的网络从列表中消失了

(3) 查看当前无线路由器列表

发送命令:AT+CWLAP(执行指令)

指令:AT+CWLAP

响应:正确:(终端返回AP列表)

+ CWLAP: ,,OK

错误:ERROR

说明:< ecn >:0-OPEN,1-WEP,2-WPA_PSK,3-WPA2_PSK,4-WPA_WPA2_PSK

:字符串参数,接入点名称

:信号强度

image-20220823170735448

如搜索不到信号,响应:

image-20220823170801968

请重新上电并严格按照 AT 命令再发送一遍。

没有列表返回的时候请耐心等待,否则会出现“busy”

(4) 加入当前无线网络

发送命令:AT+CWJAP=”MERSAIN”,”XXXXXXXX”(设置指令)

指令:AT+CWJAP=,< pwd >

说明::字符串参数,接入点名称

:字符串参数,密码,最长64字节ASCII

响应:正确:OK

错误:ERROR

image-20220823170908651

检测是否真的连上该路线网络

错误的 SSID 也可以连接上,测试后发现果然如此,输入实际不存在的账号密码返回也是 OK,

但发送 AT+CIFSR(查看模块地址),返回 ERROR,可通过此命令来判断有没有真正连接上。

发送命令:AT+CWJAP?(查询指令)

指令:AT+CWJAP?

响应:返回当前选择的AP

+ CWJAP:

OK

说明::字符串参数,接入点名称

image-20220823170951251

断电。上电后发送 AT+CWJAP?,返回同上,系统保持上次的状态。

查看模块 IP 地址

发送命令:AT+CIFSR(执行指令)

指令:AT+CIFSR

响应:正确:+ CIFSR:

OK

错误:ERROR

说明::字符串参数,接入点名称

image-20220823171153776

2. Server 方法收发

(1)开启多连接模式

发送命令:AT+CIPMUX=1(设置指令)

指令:AT+CIPMUX=

说明::0-单路连接模式,1-多路连接模式

响应:OK

image-20220823160126958

(2)创建服务器

发送命令:AT+CIPSERVER=1,8080(设置指令)

指令:AT+CIPSERVER=[,]

说明::0-关闭 server 模式,1-开启 server 模式

:端口号,缺省值为 333

响应:OK

说明:(1) AT+ CIPMUX=1 时才能开启服务器;关闭 server 模式需要重启

(2)开启 server 后自动建立 server 监听,当有 client 接入会自动按顺序占用一个连接。

开启 server 服务如下图所示

image-20220823160309165

关闭 server 服务如下图所示:

image-20220823160437217

打开 fireTools.exe,点击 Connect 按钮连接不上,可知 server 服务未开启

注意:服务器IP为ESP8266的IP地址AT+CIFSR可以查询

来自野火的调试工具

链接:https://pan.baidu.com/s/1J6oE03EcvzPqaZmM20pchQ
提取码:1234
–来自百度网盘超级会员V1的分享

image-20220823172109470

重新开启 server 服务(注意:之前需要再发送一遍 AT+CIPMUX=1以重新开启多连接模式)。

点击 Connect 按钮

image-20220823172126323

连接成功后,串口收到模块返回的数据串:0,CONNECT

180S(默认值)后,连接自动断开,返回 0,CLOSED,客户端的相应按钮变成灰色。

全过程如下图:

image-20220823163340649

(3) 设置服务器超时时间

发送命令 AT+CIPSTO=2880 (设置指令)

指令:AT+CIPSTO=

说明:

响应:OK

image-20220823163453305

(4) 建立客户端

注意:服务器IP为ESP8266的IP地址AT+CIFSR可以查询

image-20220823172202858

(5) 查看当前连接

发送命令 AT+CIPSTATUS (执行指令)

指令:AT+CIPSTATUS

响应:STATUS: + CIPSTATUS:,,,,

​ OK

说明:

:连接的 id 号 0-4

:字符串参数,类型 TCP 或 UDP

:字符串参数,IP 地址

:端口号

: 0-本模块做 client 的连接,1-本模块做 server 的连接

image-20220823172250121

(6) 向某个连接发送数据

发送命令 AT+CIPSEND=0,4(设置指令) (通过上一条指令 AT+CIPSTATUS 得知 ID=0)

指令:

1)单路连接时(+CIPMUX=0),指令为:AT+CIPSEND=

2)多路连接时(+CIPMUX=1) ,指令为: AT+CIPSEND= ,

响应:

收到此命令后先换行返回”>”,然后开始接收串口数据

当数据长度满 length 时发送数据。

如果未建立连接或连接被断开,返回 ERROR

如果数据发送成功,返回 SEND OK

说明:

:需要用于传输连接的 id 号

:数字参数,表明发送数据的长度,最大长度为 2048

image-20220823172359395

此时连接已建立,可以进行数据的双向收发。

image-20220823172437589

3. Client 方法收发

(0) 关闭 server 服务 (如果没有开启 server 服务,可免除此步骤)

发送命令:AT+CIPSERVER=0(设置指令)

指令:AT+CIPSERVER=[,]

说明::0-关闭 server 模式,1-开启 server 模式

:端口号,缺省值为 333

响应:OK

说明:(1) AT+ CIPMUX=1 时才能开启服务器;关闭 server 模式需要重启

(2)开启 server 后自动建立 server 监听,当有 client 接入会自动按顺序占用一个连

接。

关闭 server 服务如下图所示:

image-20220823165258378

并重启AT+RST

(1) 创建服务器

查看PC端连接设备的IP

image-20220823172607704

image-20220823172632045

启动监听

image-20220823172642790

(2) 开启多连接模式

发送命令:AT+CIPMUX=1(设置指令)

指令:AT+CIPMUX=

说明::0-单路连接模式,1-多路连接模式

响应:OK

image-20220823165856415

(3) 建立 TCP 连接

发送命令 AT+CIPSTART=0,"TCP","192.168.0.187",8080 (设置指令)

指令:1)单路连接时(+CIPMUX=0),指令为:AT+CIPSTART= ,,

2)多路连接时(+CIPMUX=1),指令为:AT+CIPSTART=,,,

响应:如果格式正确且连接成功,返回 OK,否则返回 ERROR

如果连接已经存在,返回 ALREAY CONNECT

说明::0-4,连接的 id 号

:字符串参数,表明连接类型,”TCP”-建立 tcp 连接,”UDP”-建立 UDP 连接

:字符串参数,远程服务器 IP 地址

:远程服务器端口号

如下图所示:

image-20220823172759456

(4) 向服务器发送数据

发送命令 AT+CIPSEND=0,3(设置指令)(通过上一条指令 AT+CIPSTART 设置为 ID=0)

指令:1)单路连接时(+CIPMUX=0),指令为:AT+CIPSEND=

2)多路连接时(+CIPMUX=1) ,指令为: AT+CIPSEND= , 响应:收到此命令后先换行返回”>”,然后开始接收串口数据

当数据长度满 length 时发送数据。

如果未建立连接或连接被断开,返回 ERROR

如果数据发送成功,返回 SEND OK

说明::需要用于传输连接的 id 号

:数字参数,表明发送数据的长度,最大长度为 2048

image-20220823172850172

此时连接已建立,可以进行数据的双向收发。用服务器向 ESP8266 发送数据,正常。

image-20220823172929242

关注收藏不迷路


给那些看完的朋友,奖励一个 赤赤博客-后端+前端,觉得不错的话可以推荐给身边的朋友哟!
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_55849362/article/details/126491714

智能推荐

新手java五子棋完整代码判断落子落在线上_Java初学者,编写小游戏五子棋的问题?...-程序员宅基地

文章浏览阅读362次。首先你需要掌握GUI编程,事件处理,已经监听器,你就掌握Swing的知识就好了Swing框架,JFrame,JPanel,鼠标、键盘监听事件Java基础,面向对象,异常处理,集合,IO流网络编程,Socket通信线程知识,Java逻辑基础上述的技术点估计需要将JavaSE这块学完才能掌握,下面进入正题。这里呢,我把几个常见的小游戏列出来,如下图:象棋对战,带聊天五子棋对战,带聊天打字游戏对战音乐播..._五子棋程序判断落子位置

杭电2041 超级楼梯_超级楼梯 (杭电2041)比赛题目 题目统计 全部提交时间限制:c/c++ 1000ms,其他语言-程序员宅基地

文章浏览阅读322次,点赞6次,收藏8次。【代码】杭电2041 超级楼梯。_超级楼梯 (杭电2041)比赛题目 题目统计 全部提交时间限制:c/c++ 1000ms,其他语言

关于构建数据仓库的几个问题_从需求出发建设数仓会有什么问题-程序员宅基地

文章浏览阅读1.6k次。写在前面数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策(Decision Making Support)。近年来,随着大数据的应用不断深入,构建企业级数据仓库成为了企业进行精细化运营的一种趋势。从管理者的视角来看,数据仓库是赋能业务并辅助决策的一种工具,从开发者的视角来看,数据仓库是一堆数据模型的集合。数仓开发是一个系_从需求出发建设数仓会有什么问题

手写B+树-程序员宅基地

文章浏览阅读3.2k次。插入关键字 40 ,按照第 2 种情况将结点分裂,并将关键字 37 上移到父结点,发现父结点 [15、37、44、59] 包含的关键字的个数大于 M ,所以将结点 [15、37、44、59] 分裂为两个结点 [15、37] 和结点 [44、59] ,并将关键字 37 上移到父结点中 [37、59、97] . 父结点包含关键字个数没有超过 M ,插入结束。比如插入关键字 12 ,插入关键字所在的结点的 [10,15] 包含两个关键字,小于 M ,则直接插入关键字 12。B+树插入删除时间复杂度为0(1)_手写b+树

基于SSM企业人力资源管理系统的设计与实现 |计算机毕业设计|Java毕业设计|课程设计|Python毕设|小程序|人力资源管理|人事管理系统|_基于ssm的企业人力资源管理系统的设计与实现-程序员宅基地

文章浏览阅读82次。在答辩过程中,要充分展示对项目的深入研究和对技术的理解,结合实际案例和数据,清晰阐述项目的创新、可行性和应用价值,回答评委问题时要有条理、准确表达自己的观点。管理员:首页、用户管理、管理员、员工、更多管理、部门管理、 请假申请、人事考勤、公司绩效、奖惩信息、通知公告、员工工资等。员工:首页、更多管理、请假申请、人事考勤、公司绩效、奖惩信息、通知公告、员工工资等。该项目含有源码、论文等资料、配套开发软件、软件安装教程、项目发布教程等。前端技术:JavaScript、VUE.js(2.X)、css3。_基于ssm的企业人力资源管理系统的设计与实现

Hector双足机器人MPC控制_force-and-moment-based model predictive control fo-程序员宅基地

文章浏览阅读940次,点赞14次,收藏16次。首先根据当前机器人状态选择合适的步态模式(站立。然后根据步态模式生成相应的脚部期望轨迹,)是摆动腿阶段,应该采用另外的。最后更新机器人的控制命令。问题的求解使用第三方库。)是跟摩擦系数有关,_force-and-moment-based model predictive control for achieving highly dynamic

随便推点

vue中使用echarts实现省市地图绘制,根据数据在地图上显示柱状图信息,增加涟漪特效动画效果_vue 市区地图+经纬度自定义显示弹窗详情-程序员宅基地

文章浏览阅读1.7k次,点赞26次,收藏14次。vue中使用echarts实现省市地图绘制,根据数据在地图上显示柱状图信息;增加涟漪特效动画。本文以吉林省地图为例,来实现吉林省市的地图的绘制。根据数据在地图上显示柱状图信息;增加涟漪特效动画。你也可以显示中国地图或其他身份地图。原理是一样的哦。主要是通过geo地理坐标系组件实现地图绘制。柱状图是利用3个样式(顶部椭圆、中部矩形、底部椭圆)层叠实现的。_vue 市区地图+经纬度自定义显示弹窗详情

网络安全等级保护2.0自查表 | 技术部分_网络安全等级保护自查表-程序员宅基地

文章浏览阅读1.2k次,点赞46次,收藏20次。网络安全等级保护2.0自查表 | 技术部分_网络安全等级保护自查表

已知一个iis漏洞可以让php解释任意的给定文件-程序员宅基地

文章浏览阅读64次。已知一个iis漏洞可以让php解释任意的给定文件。挑战:怎么执行任意命令?应用环境:防火墙配置不准许对外连接。要求:不能要求上传文件。总算看到一次答案了:http://www.inbreak.net/kxlzxtest/phpiis.txtC:\Windows\System32\LogFiles\w3svcXXXX让php解析当天访问日志,然后用get请求提交user agent为 User-Ag..._php iis 漏洞

Java IO——Files类和Paths_java.io.file[] paths-程序员宅基地

文章浏览阅读366次。Java的JDK7发生了很大的变化,专门引入了很多类:import java.nio.file.DirectoryStream;import java.nio.file.FileSystem;import java.nio.file.FileSystems;import java.nio.file.Files;import java.nio.file.Path;import java..._java.io.file[] paths

C语言(十八)翁恺老师编写的ACLLib函数库_acllib库-程序员宅基地

文章浏览阅读2.6k次。ACLLib 的介绍_acllib库

UTF-8编码-程序员宅基地

文章浏览阅读1.1w次,点赞6次,收藏34次。通过阅读本篇文章,你可以了解到:UTF-8编码的规则。_utf-8编码