天天看點

ESP8266 SDK開發: 網絡篇-TCP伺服器(espconn) (NONOS 2.2.0)

前言

關于網絡通信:

每一台電腦都有自己的ip位址,每台電腦上的網絡應用程式都有自己的通信端口,

張三的電腦(ip:192.168.1.110)上有一個網絡應用程式A(通信端口5000),

李四的電腦(ip:192.168.1.220)上有一個網絡應用程式B(通信端口8000),

張三給李四發消息,首先你要知道李四的ip位址,向指定的ip(李四ip:192.168.1.220)發資訊,

資訊就發到了李四的電腦。

再指定一下發送的端口号(通信端口8000),資訊就發到了李四電腦的網絡應用程式B上。

TCP--一種網絡通信方式而已。分為伺服器(網絡應用程式)和用戶端(網絡應用程式).

1.包含以下頭檔案

ESP8266 SDK開發: 網絡篇-TCP伺服器(espconn) (NONOS 2.2.0)
#include  "espconn.h"
#include  "mem.h"           

複制

2.定義一個espconn

ESP8266 SDK開發: 網絡篇-TCP伺服器(espconn) (NONOS 2.2.0)
struct espconn TcpServer;//TCP連接配接配置的結構體           

複制

3.配置下 TCPServer

ESP8266 SDK開發: 網絡篇-TCP伺服器(espconn) (NONOS 2.2.0)
espconn_init();//初始化
    TcpServer.type = ESPCONN_TCP;     //建立TCP
    TcpServer.state = ESPCONN_NONE;   //一開始的狀态
    TcpServer.proto.tcp = (esp_tcp *)os_malloc(sizeof(esp_tcp));

    TcpServer.proto.tcp->local_port = 8080;//監聽的端口号
    espconn_regist_connectcb(&TcpServer, TcpServerListen);//注冊監聽函數
    espconn_accept(&TcpServer);//啟動監聽           

複制

4.在監聽函數中注冊其它函數

ESP8266 SDK開發: 網絡篇-TCP伺服器(espconn) (NONOS 2.2.0)

5.測試(手機APP連接配接測試)

5.1手機APP連接配接子產品無線

ESP8266 SDK開發: 網絡篇-TCP伺服器(espconn) (NONOS 2.2.0)

5.2 使用手機APP調試助手測試

安裝調試助手

ESP8266 SDK開發: 網絡篇-TCP伺服器(espconn) (NONOS 2.2.0)

點選左上角菜單

ESP8266 SDK開發: 網絡篇-TCP伺服器(espconn) (NONOS 2.2.0)

點選網絡通信

ESP8266 SDK開發: 網絡篇-TCP伺服器(espconn) (NONOS 2.2.0)

選擇 TCP/UDP通信

ESP8266 SDK開發: 網絡篇-TCP伺服器(espconn) (NONOS 2.2.0)

選擇TCP用戶端,IP位址192.168.4.1(8266預設IP)

端口号:8080

點選 連接配接

ESP8266 SDK開發: 網絡篇-TCP伺服器(espconn) (NONOS 2.2.0)
ESP8266 SDK開發: 網絡篇-TCP伺服器(espconn) (NONOS 2.2.0)
ESP8266 SDK開發: 網絡篇-TCP伺服器(espconn) (NONOS 2.2.0)

6.測試(電腦上位機連接配接測試)

ESP8266 SDK開發: 網絡篇-TCP伺服器(espconn) (NONOS 2.2.0)

電腦連接配接8266無線

ESP8266 SDK開發: 網絡篇-TCP伺服器(espconn) (NONOS 2.2.0)
ESP8266 SDK開發: 網絡篇-TCP伺服器(espconn) (NONOS 2.2.0)
ESP8266 SDK開發: 網絡篇-TCP伺服器(espconn) (NONOS 2.2.0)
ESP8266 SDK開發: 網絡篇-TCP伺服器(espconn) (NONOS 2.2.0)
ESP8266 SDK開發: 網絡篇-TCP伺服器(espconn) (NONOS 2.2.0)

 7.編寫判斷序列槽接收到一條完整的資料程式

7.1 編寫判斷序列槽接收到一條完整的資料程式

具體請參考: https://www.cnblogs.com/yangfengwu/p/11669373.html

7.2

ESP8266 SDK開發: 網絡篇-TCP伺服器(espconn) (NONOS 2.2.0)
ESP8266 SDK開發: 網絡篇-TCP伺服器(espconn) (NONOS 2.2.0)
ESP8266 SDK開發: 網絡篇-TCP伺服器(espconn) (NONOS 2.2.0)
ESP8266 SDK開發: 網絡篇-TCP伺服器(espconn) (NONOS 2.2.0)
ESP8266 SDK開發: 網絡篇-TCP伺服器(espconn) (NONOS 2.2.0)

8.wifi序列槽接收的資料轉發給TCP用戶端(透傳)

8.1 定義一個 espconn 變量,用于擷取 espconn 結構體指針

ESP8266 SDK開發: 網絡篇-TCP伺服器(espconn) (NONOS 2.2.0)
struct espconn *TCPSendDate = NULL;//發送資料使用           

複制

8.2 指派

ESP8266 SDK開發: 網絡篇-TCP伺服器(espconn) (NONOS 2.2.0)

8.3 發送資料

ESP8266 SDK開發: 網絡篇-TCP伺服器(espconn) (NONOS 2.2.0)

測試

ESP8266 SDK開發: 網絡篇-TCP伺服器(espconn) (NONOS 2.2.0)
ESP8266 SDK開發: 網絡篇-TCP伺服器(espconn) (NONOS 2.2.0)