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.包含以下头文件

 

 

 

#include  "espconn.h"
#include  "mem.h"

 

 

 

2.定义espconn

 

 

 

struct espconn TcpServer;//TCP连接配置的结构体
struct espconn *TCPSendDate = NULL;//记录客户端socket

 

 

3.配置下 TCPServer

 

 

 

 

    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.在监听函数中注册其它函数

 

 

 

 

void   TcpServerRecv(void *arg, char *pusrdata, unsigned short length){
    TCPSendDate = arg;
    tx_buff_enq(pusrdata,length);//串口打印接收的数据
}

void   TcpServerDisCon(void *arg){

}
void   TcpServerReCon(void *arg, sint8 err){

}


void   TcpServerListen(void *arg)
{
    TCPSendDate = arg;
    struct espconn *pesp_conn = arg;
    espconn_regist_recvcb(pesp_conn, TcpServerRecv);
    espconn_regist_disconcb(pesp_conn, TcpServerDisCon);
    espconn_regist_reconcb(pesp_conn, TcpServerReCon);
}

 

 

5.测试(手机APP连接测试)

 

1手机APP连接模块无线

 

 

 

2 使用手机APP调试助手测试

安装调试助手

 

点击左上角菜单

 

 

 

 

 

点击网络通信

 

 

 

选择 TCP/UDP通信

 

 

 

选择TCP客户端,IP地址192.168.4.1(8266默认IP)

端口号:8080

点击 连接

 

 

 

 

 

 

 

 

 

 

 

6.测试(电脑上位机连接测试)

 

电脑连接8266无线

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8.串口接收的数据转发给TCP客户端(透传)

 

 

 

 

测试

 

 

 

 

 

posted on 2020-03-22 02:10  广源时代  阅读(2865)  评论(0编辑  收藏  举报

导航

支付宝 QQ群