本文以esp8266作为STA,以手机WIFI作为AP,电脑端用网络调试助手与esp8266共同连接至手机WIFI并建立TCP连接,操作步骤与我在另一篇博文提到的一致。

下面分别以“esp8266作为TCP客户端”和“esp8266作为TCP服务器”两种情况进行实验示范:

准备工具
USB转TTL、
esp8266模块、
串口调试助手、
网络调试助手、

一、esp8266作为TCP客户端

1、设置工作模式&连接热点

通过串口发送AT指令来设置esp8266的工作模式,并连接手机WIFI热点。
这里我们设置为STA模式。(电脑端也记得连上手机热点)(网线建议拔掉)

2、建立TCP连接

这里我们让esp8266作为TCP客户端,电脑端的网络调试助手作为TCP服务器。
于是,我们要先打开网络调试助手并建立一个TCP服务器。其中,端口号自行设置,(ip地址的话,软件会自动根据电脑的WIFI情况帮你填好,无法人为更改)

紧接着,我们将esp8266连接至网络调试助手建立的服务器上,即建立TCP连接。模块返回连接成功,同时可以看见网络调试助手上显示客户端上线。(注意ip和端口号填写正确,否则无法正确连接)

3、进入透传模式&开始透传

TCP连接建立之后,就可以进入透传模式,进行数据传输了。
指令发送完成后,当模块返回>,说明透传开始,接下来由串口助手发送出的数据将不再被认为是AT指令,而会被当作是纯数据,并通过TCP传送到网络助手上。

我们通过串口向网络调试助手发送“This is a message!”数据,可以看到网络助手原封不动的收到了数据。由于是透传模式,此时如果我们发送“AT”,会被当做是数据发送给网络助手,而并不是指令。

所以,可以看到,网络助手收到“AT”这个数据,而串口调试助手中,并没有反馈OK,也没有将我们发送的“This is a message!”和“AT”显示出来,再次表明当前是透传模式。

(同时要注意,从本文开始至此,我们的串口调试助手发送数据时都是勾选“发送新行”的)

4、退出透传

当数据发送完了,不想再发送数据了,则通过发送+++退出透传模式。此时,请注意,先取消勾选“发送新行”,再发送+++
发送+++后,可以看见串口助手和网络助手均无任何反馈,如上图。

紧接着,我们再次勾选“发送新行”,并通过串口发送AT,可以看到模块返回OK,说明模块退出透传模式,AT被当成了指令而不是数据。如下图:

于是,模块成功退出透传模式。至此,我们就完成了TCP通信的简单实验。

.
.
.

二、esp8266作为TCP服务器

下面我们来讲解esp8266作为TCP服务器的情况,相关步骤与上面“esp8266作为TCP客户端”时相似,有细微差别。

1、设置工作模式&连接热点

与上面提到的相同,这里略过不讲。

二、建立TCP连接

这里我们让esp8266作为TCP服务器,电脑端的网络调试助手作为TCP客户端。
所以,这一次网络调试助手要建立一个TCP客户端,以便稍后连接至esp8266建立的TCP服务器。

那么,网络调试助手的客户端参数(ip地址和端口号)怎么设置呢?该设置成多少呢?为了解决这个问题,我们先不忙着操作我们的网络助手,先操作esp8266。

通过AT指令,我们设置8266为多连接模式(因为我们要让其作为服务器,服务器需满足供多个设备连接的要求,所以是多连接),同时,我们配置8266的端口号(自行定义)。而8266建立的TCP服务器的ip地址,我们通过AT+CIPSTA_CUR?指令查得,返回数据的第一个ip则为我们要的。

TCP服务器建立好之后,接下来我们就用网络助手作为客户端连接,客户端的参数为8266设置的端口号和其ip。连接成功后,模块返回CONNECT。

3、透传

8266作为服务器时,不能开启透传模式(并不等于不能透传),我们需要通过AT+CIPSEND=<>,<>指令完成数据的传输,其第一个参数为ID号,即要发送数据给连接此服务器的第几个客户端(注意到CONNECT前的0了吗?),第二个参数为数据长度。注意,编号是从0开始的。

大概就是这样。

P.S. 类似的,其实在上一个模式,当esp8266作为客户端时,也可以使用AT+CIPSEND=<>指令实现透传(注意此时只有一个参数,即数据长度),由于不用选择客户端,所以只有一个参数。

以上就是本实验的基本内容,再进一步的,与外网建立TCP连接,也是相似的步骤,就不再赘述。

esp8266局域网内的TCP通信实验相关推荐

  1. 使用wireshark抓取聊天信息(局域网内的udp通信)

    少年 一.实验目的 二.实验操作 三.总结 四.资源 一.实验目的 1.分析这程序所采用的是udp还是tcp 2.在抓取包中找到窃取到的聊天信息 (英文字符和汉字可能经过了某种编码转换,数据包中不是明 ...

  2. micropython中文社区 socket通讯_基于MicroPython结合ESP8266模块实现TCP通信(AT指令版)...

    转载请注明文章来源,更多教程可自助参考docs.tpyboard.com,QQ技术交流群:157816561,公众号:MicroPython玩家汇 实验目的 - 学习ESP8266模块(ESP-01) ...

  3. 【未解决】局域网内通过MAC查看服务器IP

    最近跑代码需要用组里的服务器,一直是通过ssh连接的.但一旦实验室断电,重启服务器后动态分配IP就会导致我需要重新配置ssh的地址.每次都麻烦师姐帮我查一下也不是很方便,于是想自己找个办法扫一下局域网 ...

  4. 如何在局域网内实现文件夹共享

    开通博客后写的第一篇博客,以后也会不定时的更新博客,如果您在阅读过程中发现错误,可以给我私信,我再检查纠正 下面是我总结的在局域网内共享文件的操作,之后会更新通过编程实现局域网内的主机通信,如果您有兴 ...

  5. 如何访问局域网内宿主机上的虚机服务

    问题 最近在验证网关及数据库切换方案,由于测试环境机器都在使用,于是在局域网内的一个windows机器上通过WMware虚拟出服务器来实现的,但是虚拟机上完成网关及数据库的搭建后,发现在局域网内无法访 ...

  6. 虚拟机桥接模式上网,局域网内ping通

    项目场景: 项目场景:使用虚拟机的桥接模式,完成局域网内的ping通,而不仅仅是只能与宿主机ping通 问题描述 网上的解答非常杂乱,不能很好匹配Ubuntu 21的问题.在后面成功上网后,虚拟机也不 ...

  7. 西门子S7-1200的TCP通信

    西门子S7-1200的TCP通信 摘要: 西门子S7-1200集成以太网接口,通过该接口可以与其它设备进行以太网通信.S7-1200的以太网通信主要有S7.Modbus_TCP和开放式用户通信,其中开 ...

  8. ESP8266学习笔记:实现ESP8266的局域网内通信

    ESP8266学习笔记:实现ESP8266的局域网内通信 现在就以实例入手.工程使用的是IOT_DEMO,据DEMO文档可以知道ESP8266初始工作模式为softAP+station共存的模式.于是 ...

  9. STM32玩转物联网实战篇:2.ESP8266 WIFI模块TCP通信示例详解

    1.准备开发板 开发板功能区分布图 开发板俯视图 2.ESP8266简介     ESP8266 WIFI模块内置TCP/IP网络协议,模块支持三种网络模式,AP.STA和AP+STA模式,AP模式: ...

最新文章

  1. 应用Spark解决Kaggle数据科学问题
  2. jquery版本冲突问题
  3. tracepro应用实例详解_建筑安装工程造价,高清PPT图文详解,小白也能学会的简单步骤...
  4. fastjson序列化原理详解
  5. TensorFlow--线性回归问题初步
  6. [数据结构]邻接矩阵和邻接表存储的图DFS,BFS算法时间复杂度分析
  7. input输入框汇总
  8. 听听优秀的人讲 AI!带你探知目标检测以及分割的现状和挑战
  9. 基于算法的建模--小结
  10. (vc)分享一个读写ini文件的类,支持多种数据类型的读写,二进制数据都能保存和读取...
  11. 基于JAVA疫情防控期间网上教学管理计算机毕业设计源码+系统+mysql数据库+lw文档+部署
  12. css背景透明 字体不透明
  13. SQL去重的三种方法汇总​
  14. 庄子《天下》:道与术,取与予,利与害,方与圆,常与变,生与死
  15. 我在b站上推荐一个看小电影的网站,结果被骂了
  16. mysql my.cnf文件_详解MySql的配置文件my.cnf
  17. 利普希茨【NOIP2017模拟8.7A组】
  18. MonoRail学习-介绍篇
  19. [无线连接手机]-通过局域网无线连接调试手机设备
  20. 优达学城《无人驾驶入门》学习笔记——卡尔曼滤波器实现详解

热门文章

  1. 视频拼接 python_LeetCode-python 1024.视频拼接
  2. BZOJ2437: [Noi2011]兔兔与蛋蛋
  3. CHINC 2022|熙牛医疗CEO墙辉演讲实录-医疗行业双中台架构探索与实践
  4. Settings学习
  5. spring integration sftp
  6. Java 的垃圾回收
  7. Robotics: Aerial Robotics(空中机器人)笔记(三):无人机运动学建模
  8. localhost 拒绝了我们的连接请求。Swagger
  9. javac ‘javac‘ 不是内部或外部命令,也不是可运行的程序 的解决办法
  10. Android开发,登录注册界面中如何添加视频背景,亲测可用