ESP8266--Linux-TCPServer-MySQL
来源:互联网 发布:1064 mysql 编辑:程序博客网 时间:2024/06/05 16:17
利用ESP8266将数据上传到Linux服务器上面。
- 在电脑上用串口传输数据到ESP8266
- ESP8266在station模式下配置成TCP-Client模式
- CentOS服务器上运行一个TCP-Server程序
- 服务器上运行的TCP-Server程序已经配置好数据库连接
- ESP8266使用TCP将数据传输到服务器上
- TCP服务器将数据插入数据库
程序结构图
ESP8266部分:
- 接收电脑从串口传来的数据
- 将传来的数据通过TCPServer传输到指定IP的指定端口
- 服务器端要有一个TCPserver测试程序
Linux TCPServer部分:
- 显示TCP传输过来的信息
- 显示客户端,端口号
- 回复客户端当前时间
运行时在运行文件后面加端口号!./tcp 8080
/*******************服务器端程序*****************/#include <stdio.h>#include <stdlib.h>#include <errno.h>#include <string.h>#include <netdb.h>#include <time.h>#define MAXDATASIZE 128int sockfd;void do_service(fd)/*返回一个时间给客户端*/{ long t = time(0); char *s = ctime(&t); int num; char recvbuf[MAXDATASIZE]; num = recv(fd,recvbuf,MAXDATASIZE,0);/*获取信息*/ printf("num = %d\n %s\n",num,recvbuf); write(fd,s,strlen(s));/*返回时间给客户端*/}void out_client(struct sockaddr_in clientaddr)/*在服务器端显示一个客户端的IP地址和端口号*/{ char buffer[16]; inet_ntop(AF_INET,&clientaddr.sin_addr.s_addr,buffer,sizeof(clientaddr)); unsigned short port = ntohs(clientaddr.sin_port); printf("client ip:%s (%d)\n",buffer,port);/*显示客户端的IP和端口号*/}int main(int argc,char *argv[]){ if(argc < 2) { fprintf(stderr,"usage: %s port\n",argv[0]); exit(1); } /*create socket*/ sockfd = socket(AF_INET,SOCK_STREAM,0); if(sockfd < 0) { fprintf(stderr,"socket: %s\n",strerror(errno)); exit(1); } /*set ip and port*/ struct sockaddr_in addr; memset(&addr,0,sizeof(addr)); addr.sin_family = AF_INET; addr.sin_port = htons(atoi(argv[1])); addr.sin_addr.s_addr = INADDR_ANY; /*bind ip and port*/ int len = sizeof(addr); if(bind(sockfd,(struct sockaddr*)&addr,len) < 0) { fprintf(stderr,"bind: %s\n",strerror(errno)); exit(1); } /*begin to listen*/ if(listen(sockfd,10) < 0) { fprintf(stderr,"listen: %s\n",strerror(errno)); exit(1); } while(1) { struct sockaddr_in clientaddr; int c_len = sizeof(clientaddr); int fd = accept(sockfd,(struct sockaddr*)&clientaddr,&c_len); if(fd < 0) { fprintf(stderr,"accept: %s\n",strerror(errno)); continue; } out_client(clientaddr); do_service(fd); close(fd); } return 0;}
1 0
- ESP8266--Linux-TCPServer-MySQL
- tcpServer
- TCPServer
- ESP8266作为TCPServer与其他设备建立一个tcp网络进行局域网通讯
- ESP8266 Linux开发环境搭建
- ESP8266
- ESP8266
- ESP8266编译环境搭建之linux篇
- ESP8266学习之搭建Linux开发环境
- tcpserver/client
- tcpserver.c
- TCPserver客户端
- tcpclient tcpserver
- muduo : TcpServer
- handy : TcpServer
- NetComm-TCPServer
- ESP8266交叉编译环境搭建之linux篇
- Winsock API TCPServer
- 没看过这篇文章,别说你真的了解Objective-C
- 优秀的Linux网站
- mysql 锁机制
- python中selenium升级
- [codechef MARCH17]SUMDIS
- ESP8266--Linux-TCPServer-MySQL
- leetcode [Binary Tree Level Order Traversal II]
- 各大排序算法自己总结
- window10安装docker时报错 hyper-v feature is not enabled
- Jeff and Rounding
- struts2的数据校验&常用OGNL表达式&ActionSupport
- nginx配置文件nginx.conf实例
- 设计模式(16)-状态模式
- 2017浙江省选一试第一天游记