0. 前言
转载自我的古月居频道
上期介绍了Arduino的基本知识,今天直接上实例来给大家讲解TCPServer和TCPClient。看看他们到底是何方圣神。
1.TCP协议
TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,它在原有IP协议的基础上,增加了确认重发滑动窗口和复用/解复用等机制。
1.1TCP/IP的背景历史
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A3ReFwRV-1617333105849)(1.png)]](https://i-blog.csdnimg.cn/blog_migrate/675bf81aafe474ca05cb76dcf45d059a.png#pic_center)
1.2 TCP/IP协议分层模型
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6TO63u5B-1617333105851)(2.png)]](https://i-blog.csdnimg.cn/blog_migrate/0fd6d04ae4a0c73f81e1f3fac267ab19.png#pic_center)
上图列出了TCP/IP与OSI分层之间的大概关系,可以看出,TCP/IP与OSI在分层模块上稍有区别。OSI参考模型注重“通信协议必要的功能是什么”,而TCP/IP则更强调“在计算机上实现协议应该开发哪种程序”。
现在再来看看主机A向主机B发送一封电子邮件,在TCP/IP模型下的处理过程:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zZNAHTXY-1617333105854)(3.png)]](https://i-blog.csdnimg.cn/blog_migrate/f96ddec8dd95f6bfbbe7c8a47aaadb71.png#pic_center)
分组数据包经过以太网的数据链路时的大致流程如下图所示:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Iitj3ImQ-1617333105856)(4.png)]](https://i-blog.csdnimg.cn/blog_migrate/7d89871b0f3296a5abba5b78ef7eedd4.png#pic_center)
1.3 主要特点
TCP有如下特点:
- TCP提供客户和服务器的连接。
- TCP提供可靠性。(数据的可靠投递或故障的可靠通知)并不能保证数据一定会被对方端点接收。
3.TCP通过给所发数据的每一个字节关联一个序列号进行排序。 - TCP提供流量控制。TCP总是能告诉对象端它能够接收多少字节的数据,这成为通告窗口。该窗口在任何时刻都指出接收缓冲区中的可用空间,从而确保发送端发送的数据不会溢出接收缓冲区。
- TCP连接是全双工的。
2.如何理解TCPServer和TCPClient
其实从他的名称中就很容易了解他的意思:
- TCPServer = TCP(传输控制协议)+Server(服务端)
- TCPServer = TCP(传输控制协议)+Client(客户端)
2.1 Server&Client之间挥手握手图示
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ad127wZV-1617333105857)(5.png)]](https://i-blog.csdnimg.cn/blog_migrate/d17635dee84fb660055d07a9501f2a9e.png#pic_center)
如上图所示,可以看出Client和Server之间的通信过程为:
新建连接三次握手->数据传输->断连接四次挥手
3.ESP8266中做TCPServer
我们先理清一下思路:
- 首先初始化WIFI(STA或者AP模式都可以)在这里我们使用STA模式。
- 然后建立TCPServer
3.1 使用STA模式连接WIFI
在第一节的时候就介绍过WIFI的三种模式,今天就上代码使用STA模式连接WIFI。
- 创建一个wifi账号、密码的常量,方便个人操作
const char * ssid = "DIRECT-37-HP Laser 136w"; //wifi账号
const char * pwd = "SoF1PMiKZ7"; //wifi密码
String Local_IP = ""; //获取当前匹配的IP地址
- 创建一个获取WiFi的函数
void setup() {
Serial.begin(115200); //在115200波特率开启串口
pinMode(4, OUTPUT); //在开机时让灯输出也能让自己清楚的看到ESP8266是否在正常运行
digitalWrite(4, LOW);
delay(1000);

本文介绍了TCP协议的基础知识,包括其历史、分层模型和主要特点。接着,详细阐述了TCPServer和TCPClient的概念,展示了它们在通信过程中的挥手握手图示。在ESP8266上,通过WIFIServer库建立了TCP Server,并给出了连接WiFi和处理TCP连接的代码示例。最后,提到了一个实际应用案例——使用C#和ESP8266通过TCP通信控制STC8A驱动的小车。
最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



