ESP8266开发之旅 网络篇⑦ TCP Server TCP Client (5)

这里用到了ArduinoJson库,大家可以通过 ArduinoJson,后面博主也计划专门出一篇讲解它;尽量使用ArduinoJson 5.x版本,6.x版本改变很大,可能很多方法对不上;

测试结果:

注意点:

Http协议,最好还是要了解的;

可能很多人觉得这样拼装请求很麻烦,所以请关注HttpClient篇章,简化请求;

    Tcpclient就介绍到这里,博主只是带领大家做简单学习,深入的理解还请自行查阅源码;

5. TCP Server

    接下来,博主开始介绍TCP Client的重要伙伴 —— Tcp Server。
    现在,手机上网已经是人们每天必不可少的事情。比如刷微博,刷朋友圈,刷新闻等等; 那么这些朋友圈、微博、新闻内容都是从哪里来的呢?做个App开发的同学都应该知道,手机App属于client端,属于UI端,展示UI内容,而显示什么UI内容基本上都是发送一些http请求到后端服务(server),服务器根据具体的请求内容返回对应的响应内容。
    所谓server,可以简单理解为提供服务,提供数据的一个地方。
    先来理解一下概念图:

image


    mobile phone作为client端,通过路由热点,向Server端的ESP8266请求数据,8266获取到请求后解析请求然后返回响应数据。
    但是,请开发者注意:ESP8266上建立一个server是比较简单的,不过是属于局域网内的server,因为真正意义上的server并不是这样的,大伙了解一个这样的概念就好

6. WiFiServer库

    在ESP8266上建立TCP Server需要用到WiFiServer库,WiFiServer库也是属于ESP8266WiFi库里面的一部分,主要是负责跟server有关的操作。
    先来了解一下整体函数结构,博主总结了一波百度脑图:

image


    方法总体上可以分为三部分:

管理server方法;

WiFiClient接入方法;

响应WiFiClient的请求(这部分方法请看上面讲解);

6.1 管理server 6.1.1 WiFiServer server(port) —— 创建TCP server

函数说明:

/** * 函数功能:创建TCP server * @param addr server的ip地址 * @param port server的端口 */ WiFiServer(IPAddress addr, uint16_t port); /** * 函数功能:创建TCP server * @param port server的端口 */ WiFiServer(uint16_t port); 6.1.2 begin() —— 启动TCP server

函数说明:

/** * 函数功能:启动TCP server */ void begin(); /** * 函数功能:启动TCP server * @param port server端口号 */ void begin(uint16_t port);

注意点:

begin()和 WiFiServer(addr, port)或者WiFiServer(port)一起使用;

6.1.3 setNoDelay() —— 关闭延时发送功能

函数说明:

/** * 是否禁用 Nagle 算法。 * @param nodelay true表示禁用 Nagle 算法 */ void setNoDelay(bool nodelay);

注意点:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzpgfx.html