Socket over WiFi#
Socket简介#
Socket(套接字)是计算机网络中用于实现网络通信的一种抽象概念。它提供了一种通用的编程接口,使得应用程序能够通过网络进行数据交换。
Socket可以被看作是一个端点,用于建立网络连接的起点或终点。在网络通信中,通信的两个端点分别使用不同的Socket,它们通过Socket之间的连接进行数据的发送和接收。
Socket通常用于实现客户端-服务器模式的网络通信。在这种模式下,客户端应用程序使用Socket连接到服务器的Socket,然后通过Socket进行数据的发送和接收。服务器端应用程序则监听某个特定的Socket端口,等待客户端的连接请求,并通过建立的Socket与客户端进行通信。
Socket通信可以基于不同的传输协议,例如TCP(传输控制协议)或UDP(用户数据报协议)。TCP提供可靠的、面向连接的通信,确保数据按照顺序传输且不丢失;而UDP则提供无连接的通信,适用于对实时性要求较高但不要求可靠性的应用场景。
在编程中,Socket通常由操作系统提供的网络库或网络框架来实现。不同编程语言提供了各自的Socket API,开发者可以使用这些API来创建、连接和管理Socket。常见的编程语言如C、Java、Python等都提供了Socket编程的支持。
总而言之,Socket是一种实现网络通信的抽象概念,它提供了一种通用的编程接口,使得应用程序能够通过网络进行数据交换。通过Socket,开发者可以实现客户端-服务器模式的网络通信,并选择适合的传输协议来满足通信需求。
Socket通信基本原理#
Socket通信是基于网络的一种通信方式,它的原理如下:
创建Socket:在通信的两端,即客户端和服务器端,分别创建一个Socket对象。Socket可以简单理解为一个端点,它包含了IP地址和端口号。
建立连接:客户端通过指定服务器的IP地址和端口号,向服务器发起连接请求。服务器监听指定端口,并接受客户端的连接请求。一旦连接建立成功,客户端和服务器端就可以进行通信。
数据传输:通过已建立的连接,客户端和服务器端可以进行数据的发送和接收。在TCP协议中,数据以字节流的形式传输,而在UDP协议中,数据以数据报的形式传输。
关闭连接:通信完成后,客户端或服务器端可以选择关闭连接。关闭连接会释放网络资源,并使得两端的Socket不再可用。
在TCP协议中,Socket通信采用面向连接的方式。它通过三次握手来建立可靠的连接,确保数据的可靠性和顺序性。而在UDP协议中,Socket通信是无连接的,每个数据包都是独立发送的,不保证数据的可靠性和顺序性。
Socket通信的原理是基于网络协议栈的实现。它利用底层的网络协议(如IP、TCP、UDP)来传输数据,并通过Socket接口提供了简单而强大的编程接口,使得程序能够方便地进行网络通信。
实验内容#
本节的实验内容是在ESP32设备连接到WiFi之后,在WiFi之上建立socket连接,共有两个实验,分别实现TCP以及UDP协议,在每个实验中,ESP32设备分别充当Server以及Client的角色。
主要实验内容包括如下: