当前位置: 首页 > news >正文

做网站必须知道的问题上海seo网站策划

做网站必须知道的问题,上海seo网站策划,邵阳网站推广,北京网站建设成都公司声明 本文实现了ESP8266、微信小程序、个人服务器三者互相通信,并且小程序能发消息给微信用户 本文所有代码和步骤均为亲测有效 以下代码均为从网上搜索到后本人加以改动的,并非完全原创,若作者希望删除可联系我 ESP8266与个人服务器通信 ESP8266配置 通过串口通信使用…

声明

本文实现了ESP8266、微信小程序、个人服务器三者互相通信,并且小程序能发消息给微信用户

本文所有代码和步骤均为亲测有效

以下代码均为从网上搜索到后本人加以改动的,并非完全原创,若作者希望删除可联系我

ESP8266与个人服务器通信

ESP8266配置

通过串口通信使用AT指令控制ESP8266,AT指令详细讲解网上很多,自行搜索

复位:

AT+RST\r\n

连接wifi:

AT+CWJAP="601_2.4G","tddsqdhgq15"\r\n

检查ip:

AT+CIFSR\r\n

链接个人服务器,x.x.x.x为个人服务器的公网IP地址,y为个人服务器开放的通信端口:

AT+CIPSTART="TCP","x.x.x.x",y\r\n

ESP8266向个人服务器发送15个字符:

AT+CIPSEND=15\r\n

个人服务器配置

建立tcp_server.cpp文件。

#include <sys/types.h>
#include <sys/socket.h>
#include <string.h>
#include <stdio.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include <linux/tcp.h>#include <sys/types.h>
#include <sys/socket.h>
#include <stdio.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
#include <fcntl.h>
#include <sys/shm.h>#include <pthread.h>#define PORT  8888
#define QUEUE_SIZE   10
#define BUFFER_SIZE 1024#define CHECK_ERROR(sts, status) {if (sts) {printf("CHECK_ERROR:%d %d %d\n%s\n", __FILE__, __FUNCTION__, __LINE__);return status;}}int total_device_num = 0;struct DEVICE_T
{int sockfd;int id;pthread_t tid;char reserved[16];
};DEVICE_T device_t[1000];//传进来的sockfd,就是互相建立好连接之后的socket文件描述符
//通过这个sockfd,可以完成 [服务器]<--->[8266] 互相收发数据void *strPrintf(void *args)
{int sockfd = *((int *)args);char buffer[BUFFER_SIZE];char device_id_string[10];memset(device_id_string, 0, 10);pid_t pid = pthread_self();unsigned int i = 10, j = 0;while(1){memset(buffer,0,sizeof(buffer));//printf("listening sockfd %d\n", sockfd);int len = recv(sockfd, buffer, sizeof(buffer),0);if(strcmp(buffer,"exit\n")==0){printf("child process: %d exited.\n",pid);break;}printf("sockfd:%d receive:%s\n",sockfd,buffer);if ( buffer[0] == 'd' ){for(i = 10; buffer[i] != '_'; i ++)//device_id_123_{if (i > 19){printf("error:i > 24\n");exit(0);}device_id_string[i - 10] = buffer[i];}printf("sockfd:%d id %d\n", sockfd,atoi(device_id_string));for (i = 0; i < total_device_num; i ++){if (sockfd == device_t[i].sockfd){break;}}device_t[i].id = atoi(device_id_string);printf("\n\n\n\n↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 发生设备绑定 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓\n");printf("此设备:编号 %d id %d sockfd %d\n", i, device_t[i].id, device_t[i].sockfd);printf("已经连接的设备总数: %d\n", total_device_num);printf("所有设备信息如下:\n");for (j = 0; j < total_device_num; j ++){printf("device[%d] id %d sockfd %d tid %d\n", j, device_t[j].id, device_t[j].sockfd, device_t[j].tid);}printf("↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑\n\n\n\n");}// fputs(buffer, stdout);struct tcp_info info;int len_tcp_info = sizeof(info);getsockopt(sockfd, IPPROTO_TCP, TCP_INFO, &info, (socklen_t*)&len_tcp_info);int sts_getsockopt = getsockopt(sockfd, IPPROTO_TCP, TCP_INFO, &info, (socklen_t*)&len_tcp_info);printf("设备:编号 %d id %d socket %d tcp状态 %d getsockopt返回值 %d\n", i, device_t[i].id, device_t[i].sockfd, info.tcpi_state, sts_getsockopt);if((info.tcpi_state != 1)|| (sts_getsockopt != 0))  //则说明未断开  else 断开{printf("已经断开链接!!\n");if (total_device_num == 1){device_t[0].id 		= 0;device_t[0].sockfd 	= 0;device_t[0].tid 	= 0;}else{device_t[i].id 		= device_t[total_device_num - 1].id;device_t[i].sockfd 	= device_t[total_device_num - 1].sockfd;device_t[i].tid 	= device_t[total_device_num - 1].tid;device_t[total_device_num - 1].id 		= 0;device_t[total_device_num - 1].sockfd 	= 0;device_t[total_device_num - 1].tid 		= 0;}total_device_num --;close(sockfd);pthread_exit((void **)"线程关闭\n");}else{printf("发送消息:%s\n", buffer);send(sockfd, buffer, len, 0);  //将接收到数据发送回去}}close(sockfd);
}int main(int argc, char **argv)
{int err,i ;pthread_t ntid;//建立本cpp与php之间的通信,此线程一直保存err = pthread_create(&ntid, NULL, PHP_and_TcpServer, NULL);if (err != 0)printf("can't create thread: %d\n", err);//定义IPV4的TCP连接的套接字描述符int server_sockfd = socket(AF_INET,SOCK_STREAM, 0);//定义sockaddr_in
http://www.mmbaike.com/news/50106.html

相关文章:

  • 小网站源码百度广告优化师
  • 怎样建设网站卖农产品找做网站的公司
  • 企业网站开发 流程seo知识总结
  • 做鞋子皮革有什么网站医院线上预约
  • 用美国服务器做中国盗版网站疫情防控最新通告
  • html5手机网站开发百度学术搜索
  • 课程网站课程资源建设在线培训系统
  • 做电影分享网站违法吗广告推广费用一般多少
  • 网站推广的措施和手段有哪些北京线上教学
  • 福建省住房和城乡建设厅门户网站东莞seo优化推广
  • 泸西县建设小学网站郑州网站建设价格
  • 怎样做档口批发网站广州企业网站推广
  • 日本建设网站北京seo排名优化网站
  • 南京网站推广价格博客推广的方法与技巧
  • 客服网站怎么做seo是什么服务
  • 做充币提现的网站企业网站设计欣赏
  • 四川餐饮网站建设杭州搜索引擎优化公司
  • 爱做网站免费设计师经常用的网站
  • 做网站需不需要购买服务器全网营销推广系统
  • 武汉平台网站建设seo用什么工具
  • 音乐网站排名产品策划方案怎么做
  • 秀设计网站打开官方网站
  • 广东网页空间网站平台培训平台
  • 附近的网站建设公司站长工具下载app
  • 网站数据怎么备份海东地区谷歌seo网络优化
  • 云主机上传网站免费b站软件推广网站
  • 山西成宁做的网站买卖友链
  • 柳市做网站的公司b站视频推广怎么买
  • java做门户网站乐天seo培训中心
  • 柏乡seo快排优化深圳优化公司找高粱seo服务