当前位置: 首页 > news >正文

无锡装饰网站建设如何自己做网站赚钱

无锡装饰网站建设,如何自己做网站赚钱,创业项目网,安徽省工程建设信息网站将ESP32设置为TCP服务器 介绍 TCP(Transmission Control Protocol)传输控制协议,是一种面向连接的(一个客户端对应一个服务端)、可靠的传输层协议。在TCP的工作原理中,它会将消息或文件分解为更小的片段&a…

将ESP32设置为TCP服务器

介绍


TCP(Transmission Control Protocol)传输控制协议,是一种面向连接的(一个客户端对应一个服务端)、可靠的传输层协议。在TCP的工作原理中,它会将消息或文件分解为更小的片段,称为数据包,然后通过Internet发送。这些数据包被TCP层接收后,重新组合成完整的文件或消息。此外,为了确保数据的传递成功,TCP还会对数据流进行错误检查。如果发现错误,TCP会请求重新传输丢失或损坏的数据包。

基本方法


ESP32设置为TCP服务器的流程:

  1. 包含必要的库:
    在Arduino项目中,首先需要包含与ESP32和网络通信相关的必要库:

    #include <Arduino.h>
    #include <WiFi.h>
    
  2. 配置网络参数:
    设置用于ESP32访问点(Access Point,AP)的网络参数,如SSID(Wi-Fi名称)和密码。

    const char *ssid = "esp32_tcp";
    const char *password = "987654321";
    
  3. 创建TCP服务器对象:
    使用WiFiServer类创建一个TCP服务器对象,并指定服务器监听的端口。

    WiFiServer server(1133);
    

    这里的1133是服务器监听的端口号,你可以根据需要选择一个未被占用的端口。

  4. 设置服务器:
    setup()函数中进行服务器的初始化和启动。

    void setup() {Serial.begin(115200);WiFi.softAP(ssid, password);server.begin();Serial.print("IP:");// 串口打印AP_IPSerial.println(WiFi.softAPIP());
    }
    

    这里,WiFi.softAP(ssid, password)将ESP32配置为访问点,server.begin()启动TCP服务器,并使用Serial.println(WiFi.softAPIP())打印ESP32的IP地址。

  5. 处理客户端连接和通信:
    loop()函数中,通过server.available()检查是否有新的客户端连接。如果有新连接,通过WiFiClient对象处理通信。

    void loop() {
    // 循环检测有无客户端  有请求-能连接-有数据WiFiClient client = server.available();// client指向发出请求的客户端对象if (client) {// 处理新客户端连接while (client.connected()) {if (client.available()) {//检测有无数据可读// 处理客户端发送的数据char val = client.read();// 读取一个字节数据Serial.println(val);client.print(val); // 回发数据给客户端}}} else {client.stop();delay(2000);}
    }
    

    server.available(); 此函数用于检查是否有客户端试图连接到服务器。如果有客户端可用,它将返回一个WiFiClient对象,表示新的客户端连接。如果没有客户端试图连接,则返回一个WiFiClient对象,其值为false。
    在循环检测新的客户端连接,如果有新连接,就在连接建立的状态下处理客户端发送的数据。

常用API


ESP32的Arduino核心库(Arduino core for ESP32)提供了一组用于TCP通信的API。以下是关于ESP32 Arduino库中与TCP相关的一些重要函数和类的总结:

  1. WiFiServer 类:

    • 构造函数: WiFiServer(uint16_t port)
    • 成员函数:
      • begin(): 启动服务器,开始监听指定端口。
      • available(): 检查是否有客户端请求连接,返回一个 WiFiClient 对象表示新的连接。
      • status(): 返回服务器状态。
      • stop(): 关闭服务器。
  2. WiFiClient 类:

    • 构造函数: WiFiClient()
    • 成员函数:
      • connect(IPAddress ip, uint16_t port): 连接到指定IP地址和端口的服务器。
      • connect(const char *host, uint16_t port): 连接到指定主机名和端口的服务器。
      • connected(): 检查是否与服务器建立了连接。
      • available(): 检查是否有数据可用于读取。
      • read(): 读取一个字节的数据。
      • readBytes(char *buffer, size_t length): 读取指定长度的数据。
      • print() / println(): 向服务器发送数据。
      • stop(): 关闭连接。
  3. WiFi 操作相关:

    • WiFi.softAP(ssid, password): 将ESP32配置为Access Point(热点)。
    • WiFi.softAPIP(): 获取ESP32 Access Point的IP地址。
    • WiFi.localIP(): 获取ESP32的本地IP地址。

这些是ESP32 Arduino核心库中与TCP通信相关的一些重要函数和类。详细的文档可以查看ESP32 Arduino文档。

完整程序和测试效果


#include <Arduino.h>
#include <WiFi.h>
// ESP32作为tcp服务端,手机或者电脑的调试助手
// 作为客户端,进行通信const char *ssid = "esp32_tcp";
const char *password = "987654321";
// tcp服务端对象
WiFiServer server(1133);void setup()
{Serial.begin(115200);WiFi.softAP(ssid, password);server.begin();// 串口打印AP_IPSerial.print("IP:");Serial.println(WiFi.softAPIP());
}void loop()
{// 循环检测有无客户端  有请求-能连接-有数据WiFiClient client = server.available(); // client指向发出请求的客户端对象if (client){Serial.println("新客户端.");Serial.println(client.localIP());while (client.connected()){// 连接成功进入循环if (client.available())//检测有无数据可读{char val = client.read(); // 读取一个字节数据Serial.println(val);client.print(val); // 回发数据给客户端}}}else{client.stop();delay(2000);}
}

串口发送且得到返回
在这里插入图片描述

http://www.yayakq.cn/news/158806/

相关文章:

  • 郑州网站优化公司电话网站开发的四个高级阶段包括
  • 好看的网站后台模板wordpress cos 配置
  • 外贸网站建设费用一般要多少赣州网上商城系统
  • 哪个网站是专门做封面素材wordpress设置标题关键词
  • 网站制作百度网站开发管理课程设计说明
  • 网站建设开发电销话术阳泉推广型网站建设
  • 华联股份股票江苏企业seo推广
  • 樟树市建设局网站口碑好的扬州网站建设
  • 建站服务公司网站源码企业服务app下载
  • 广东深圳网站建设长沙网站设计报价
  • 安徽网站建站系统平台济南网站建设熊掌号
  • 山东网站建设平台郑州百度网站优化
  • 网站开发任务概述北京公司地址
  • 汽车可以做哪些广告视频网站手机网站建设定制
  • 苏州工业园区两学一做网站蓝色商务网站模板
  • 保之友微网站怎么建互诺 外贸网站建设
  • 可以做app的网站中国建设银行网站太慢了
  • 国外wordpress空间太原整站优化
  • 学网站开发需要学那些公司怎样制作网站
  • 上海网站设计公司排行榜合肥网站开发外包
  • seo是怎么优化关键词的连云港网站关键字优化如何
  • 建设网站项目的目的网站建设好了还要收取维护费
  • 镇江市机关效能与作风建设网站网络推广引流方法
  • 用于建设教学网站的建站工具有哪些特点重庆装修公司口碑排名
  • 织梦网站如何做软件下载淘宝网站内站建设
  • 360官方网站网址有优惠券网站 怎么做代理
  • 哪个网站可以直接做ppt南沙营销网站建设
  • 网站建设 注意事项贵州省建设厅官方网站
  • 大型手机网站制作一个网站专门做摩托车
  • windows2012做网站东莞怎样做网站建设