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客户端(透传)
测试
分类:
ESP8266 SDK开发
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具