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

安徽省建设工程信息网怎么打不开了吉安seo招聘

安徽省建设工程信息网怎么打不开了,吉安seo招聘,wordpress python3,cdn如何做网站备案项目需求是 程序上 同时配置了多个服务端 设备 每隔一段时间需要 比如1分钟 连一下服务器看下是否连通 并将结果上报给平台 原来是用线程池来做的 具体大概就是 定时器到了之后 遍历设备列表 找到设备之后 通过 socket连接 发送一个指令 等待服务器返回 用来检查是…

项目需求是  程序上 同时配置了多个服务端 设备

每隔一段时间需要 比如1分钟 连一下服务器看下是否连通  

并将结果上报给平台 

原来是用线程池来做的  

具体大概就是 定时器到了之后 

遍历设备列表  找到设备之后  通过 socket连接 发送一个指令 等待服务器返回 用来检查是否在线 

这样的问题是 如果设备不是很多的话 还好  但是如果 有上百个设备 的话 

每一轮遍历需要很长时间  

后来 看了EPOLL尝试一下  

相当于是改成单线程了  但是效果不是很好  

基本上还是相当于单线程     测试结果感觉还是单线程在跑  

后期改成协程试下看看  

bool QMCY_APP::CreateEPOLL()
{m_epoll_fd = epoll_create1(0);if (m_epoll_fd < 0){printf("epoll_create failed\n");return false;}return true;
}

bool QMCY_APP::Add2Epoll(std::shared_ptr<IQMCY>  led)
{int fd;auto ip = led->NVR_GetIP().c_str();auto port = led->NVR_GetPort();struct sockaddr_in my_addr;socklen_t peer_addr_size;fd = socket(AF_INET, SOCK_STREAM | SOCK_NONBLOCK, 0);if (fd == -1){printf("Add2Epoll Create socket failed\n");return false;}memset(&my_addr, 0, sizeof(my_addr));my_addr.sin_family = AF_INET;my_addr.sin_addr.s_addr = inet_addr(ip);my_addr.sin_port = htons(port);int ret = connect(fd, (struct sockaddr*)&my_addr, sizeof(my_addr));if (ret == 0) {puts("connect successfully!");return false;}if (errno != EINPROGRESS) printf("Add2Epoll success [%s:%d] \n",ip,port);struct epoll_event ev;ev.events = EPOLLOUT |EPOLLET |EPOLLIN;ev.data.fd = fd;if (epoll_ctl(m_epoll_fd, EPOLL_CTL_ADD, fd, &ev) == -1){printf("epoll_ctl failed\n");return false;}m_led_all.insert(std::pair<int,std::shared_ptr<IQMCY>>(fd,led));led->NVR_ResetState();return true;
}

bool QMCY_APP::HandleEPOLL()
{int timeout = 3000;	auto index = 0;struct epoll_event events[MAX_EVENTS];while(index <m_led_all.size()*2){int nfds = epoll_wait(m_epoll_fd, events, MAX_EVENTS, timeout);if (nfds < 0) {printf("epoll_wait\n");} else if (nfds == 0) {printf("epoll_wait timeout\n");} else {for (int n = 0; n < nfds; ++n) {printf("epoll_wait nfds:%d events:%d\n",nfds,events[n].events);		 	if (events[n].data.fd && (events[n].events & EPOLLOUT)) {int connect_error = 0;socklen_t len = sizeof(connect_error);if(getsockopt(events[n].data.fd, SOL_SOCKET, SO_ERROR, (void*)(&connect_error), &len) < 0){printf("getsockopt error\n");continue;}if (connect_error != 0) {printf("fd:[%d] connect: %s\n",events[n].data.fd, strerror(connect_error));continue;}else{auto fd = events[n].data.fd;auto led = m_led_all[fd];printf("QMCY 00000000000000000 connect to led success [ip:%s  port:%d]\n",led->NVR_GetIP().c_str(),led->NVR_GetPort());struct epoll_event ev = {0};ev.events = EPOLLET |EPOLLIN;ev.data.fd = fd;epoll_ctl(m_epoll_fd, EPOLL_CTL_MOD, fd, &ev);led->NVR_ProbeOnline(fd);}}else if (events[n].data.fd && (events[n].events & EPOLLIN)){char buf[BUFSIZ] = {0};int nread,n = 0;  auto fd = events[n].data.fd;while ((nread = read(fd, buf + n, BUFSIZ-1)) > 0) {  n += nread;  printf("n=%d nread=%d\n",n,nread);}  if (nread == -1 && errno != EAGAIN) {  perror("read error");  continue;} auto led = m_led_all[fd];printf("11111111Read data success [ip:%s	port:%d read=%d]\n",led->NVR_GetIP().c_str(),led->NVR_GetPort(),n);if(n>0){led->NVR_ProbeAnalyse(buf,n);						}}}}index++;printf("HandleEPOLL  loop index =%d ~~~~~~~~~~~~~~~~~\n",index);//sleep(1);}printf("HandleEPOLL end exit ~~~~~~~~~~~~~~~~~\n");return true;
}
bool QMCY_APP::DestroyEPOLL()
{if (m_epoll_fd > 0 ) {close(m_epoll_fd);}return true;
}

http://www.hkea.cn/news/325962/

相关文章:

  • 广州b2b网站建设公司推广网站
  • 新乡市封丘县建设局网站百度教育官网登录入口
  • 网站开发项目点击器
  • 建公司网站需要多少钱推广普通话手抄报内容资料
  • 东莞市建设监督网站首页app宣传推广方案
  • 网站设计基本功能域名免费注册0元注册
  • 徐州网站建设的特点营销咨询公司
  • 网站建设问题表在seo优化中
  • 网站建设公司 倒闭店铺推广方法
  • 网站搭建素材短视频培训
  • amazon虚拟机免费做网站百度信息流怎么收费
  • 深圳做网站推广公司聊城seo整站优化报价
  • 深圳专业app网站开发企业网站建设原则是
  • 网站开发师职责柳州网站建设哪里有
  • 自己做的网站怎么改电话网络推广代运营公司
  • 做水果的网站有哪些google高级搜索
  • 怎么用网站做文案百度推广可以自己开户吗
  • 做的好的新闻网站排名优化
  • 购物网站开发功能百度联盟个人怎么接广告
  • 网站如何盈利流量费网站seo搜索引擎的原理是什么
  • 泰安房产价格最新域名年龄对seo的影响
  • 网站打不开怎么回事引流推广平台有哪些
  • 课程网站建设特色成都seo外包
  • 建设厅安全员证书查询网站外链seo推广
  • 邢台手机网站建设服务百度查重软件
  • 网站开发开题报告ppt竞价运营是做什么的
  • 网站代理怎么做的网站推广策划思路
  • 长沙网站seo公司百度权重5的网站能卖多少钱
  • 常德网站开发百度推广登录首页网址
  • 网站建设软件设计推广官网