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

网站开发公司需要哪些资质网站用户体验优化方案

网站开发公司需要哪些资质,网站用户体验优化方案,wordpress 仿36氪,外贸免费网站建设项目需求是 程序上 同时配置了多个服务端 设备 每隔一段时间需要 比如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_ptrIQMCY 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::pairint,std::shared_ptrIQMCY(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(n0){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.dnsts.com.cn/news/165087.html

相关文章:

  • 江门seo网站排名wordpress ajax评论
  • 福州自适应网站建设制作网页模板
  • 陕西铜川煤矿建设有限公司网站网站中英文转换js
  • 做ppt的网站兼职dw可以做移动端网站
  • 镇江公司做网站优化网站服务
  • 网站开发语言介绍一台vps主机可以建设多少个网站
  • 网页设计师网站北京有实力的软件开发公司
  • 中山网站开发招聘广西桂林简介
  • 海南房产网站开发保定免费建站
  • 网站开发团队名称python做网站入门
  • 二手车 东莞网站建设wordpress 是否登录
  • 东莞桥头网站建设58同城网站建设案例
  • 精品课程网站建设方案在天极网做网站有效果吗
  • 北京城建道桥建设有限公司网站vx网页版
  • 网站维护需要关闭网站么icp备案需要什么材料
  • 公司网站制作步骤商品展示网站模板源码
  • 网站设置价格错误不愿意发货网站建设 空间
  • 爱站seo工具品牌网站建设 十蝌蚪小
  • 浙江省住房和城乡建设厅网站技术支持 沧州网站建设
  • 公司网站域名和空间厦门网站代理
  • 如何在自己网站做直播企业网站建设的基本流程
  • 个人网站需要哪些内容怎么看别人的wordpress
  • intitle 做网站个人网站备案可以做博客吗
  • 沭阳做网站的公司网站线上投票怎样做
  • 大兴高端网站建设WordPress如何屏蔽国内用户
  • 怎么给网站加友情链接河南城市建设网站
  • 佛山网站公司品牌公关具体要做些什么
  • 做网站分为哪些功能的网站网站开发项目教程答案
  • 广东品牌网站建设平台精品课程网站的建设
  • 好看的网站的导航怎么做做推广的网站带宽需要多少