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

17做网站广州沙河地址建站宝盒破解版

17做网站广州沙河地址,建站宝盒破解版,wordpress用别人主题,wordpress插件团购项目需求是 程序上 同时配置了多个服务端 设备 每隔一段时间需要 比如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.w-s-a.com/news/476623/

相关文章:

  • 做渲染的网站太原做网站兼职
  • 网站开发实施方案怎么设置wordpress底栏文字
  • 网站建设朝阳学前端有必要找培训机构吗
  • 自适应网站好处wordpress ftp验证
  • 网站建设的时间免费ppt模板的网站
  • 建个人网站一般多少钱ppt下载网站哪个好
  • 网站建设比赛网站建设合同标的怎么写
  • 中国做的儿童编程网站网站建设模板网站
  • 电脑做系统网站微信开店
  • site之后网站在首页说明说明网络舆情分析师怎么考
  • 本溪网站建设兼职wordpress lapa
  • 官网网站设计费用vue大型网站怎么做路由
  • 青海省安建设管理部门网站厦门网站快照优化公司
  • 张家港建网站公司网站开发 认证
  • 网站建设方式优化兰州医院网站制作
  • 怎么创造网站wordpress伪静态规则怎么写
  • 自己怎么做一元购物网站信誉好的合肥网站推广
  • 做网站的骗术有什么好的网站设计思想的博客
  • 网站建设工作 方案企查查企业信息查询在线
  • 上海外贸建站商城定制软件安卓
  • 成都网站建设_创新互联wordpress 相邻文章
  • 电子商务网站制作步骤免费建网站知乎
  • 龙岩有什么招聘本地网站团购网站 方案
  • 服务器运行一段时间网站打不开注册公司名字核名查询系统
  • 企业网站改版的意义响应式网站建设新闻
  • 大连金州新区规划建设局网站金坛市建设局网站
  • 有哪些做排球比赛视频网站wordpress 教师工作坊
  • 深圳好点的网站建设公司互联网企业信息服务平台
  • 下载空间大的网站建设哈尔滨网站制作软件
  • 南城网站仿做无锡网站制作哪家价格便宜