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

西安网站开发工程师集美那里有教网站建设

西安网站开发工程师,集美那里有教网站建设,四年级写一小段新闻,成都网络公司网站前言#xff1a;因为项目需要定时检查网络中设备是否能连通#xff0c;需要定时去做ping操作#xff0c;若是网络不通#xff0c;则ping花费时间比较久#xff08;局域网大概4秒钟才能结束#xff0c;当然如果设置超时时间啥的#xff0c;也能很快返回#xff0c;就是会…前言因为项目需要定时检查网络中设备是否能连通需要定时去做ping操作若是网络不通则ping花费时间比较久局域网大概4秒钟才能结束当然如果设置超时时间啥的也能很快返回就是会报QProcess提前关闭的警告。此外我想要在设备连接后才去开始定时ping要是断开后则停止定时器停止ping。网上有很多定时器使用线程的例子但是没有讲到可以随时停止和开始的那种本文结合实例使用线程去执行定时器的定时操作。 一、定义定时器和线程变量。 在头文件中定义 #include QTimer#include QThread#include QString#include QProcess/** 监听网线拔出或者wifi断开情况的定时器 ***/QTimer *detectNetCablePulloutTimer NULL;/** 执行定时器的线程 **/QThread *detectNetCablePulloutTimerThread NULL;/** 开始检测网线拔出时或者wifi断开时的定时器 **/void startDetectNetCablePulloutTimer();/** 停止定时器 **/void stopDetectNetCablePulloutTimer();private slots:/** 检测网络连接情况的槽函数在线程中执行 **/void checkDeviceIsOnline(); 二、开始定时器、停止定时器以及销毁定时器代码。 开始定时器代码 void CurrentXXXClass::startDetectNetCablePulloutTimer() {// 先停止确保开始之前是停止状态stopDetectNetCablePulloutTimer();if (detectNetCablePulloutTimer NULL) {detectNetCablePulloutTimerThread new QThread(this);detectNetCablePulloutTimer new QTimer();// 5秒执行一次局域网断开时一般耗时4-5秒detectNetCablePulloutTimer-setInterval(5000);// 定时操作放在线程中执行detectNetCablePulloutTimer-moveToThread(detectNetCablePulloutTimerThread);// 定时任务放在线程中执行, 必须指定参数-Qt::DirectConnectionconnect(detectNetCablePulloutTimer, QTimer::timeout, this,CurrentXXXClass::checkDeviceIsOnline, Qt::DirectConnection);// 匿名函数void (QTimer::*pStartFun)() QTimer::start;// 线程开始时调用定时器的开始connect(detectNetCablePulloutTimerThread, QThread::started, detectNetCablePulloutTimer, pStartFun);// 线程结束时调用定时器的结束所以要停止定时器只要调用线程的quit方法// 同时防止提示定时器停止和开始不在同一线程错误connect(detectNetCablePulloutTimerThread, QThread::finished, detectNetCablePulloutTimer, QTimer::stop);}detectNetCablePulloutTimerThread-start(); } 停止定时器代码 void CurrentXXXClass::stopDetectNetCablePulloutTimer() {if (detectNetCablePulloutTimerThread ! NULL) {// 会调用定时器的stop方法detectNetCablePulloutTimerThread-quit();} } 销毁定时器在析构函数中执行 //销毁指针变量-注意先后顺序if (detectNetCablePulloutTimerThread ! NULL) {detectNetCablePulloutTimerThread-quit();detectNetCablePulloutTimerThread-wait();delete detectNetCablePulloutTimerThread;detectNetCablePulloutTimerThread nullptr;}if (detectNetCablePulloutTimer ! NULL) {delete detectNetCablePulloutTimer;detectNetCablePulloutTimer nullptr;} 三、在槽函数中执行耗时操作。 此槽函数是在子线程中执行若是执行完后要回到主线程执行某操作则必须通过发送一个信号方式才能达到效果。 void CurrentXXXClass::checkDeviceIsOnline() {QString ip 192.168.1.1;// 若是timer使用了线程则此函数在子线程中执行执行比较耗时的操作QProcess pingProcess;// 不设置-w参数QString strArg ping ip -n 1 -i 2;// qt 6 开始命令的方法pingProcess.startCommand(strArg, QIODevice::ReadOnly);// 不带等待时间参数pingProcess.waitForReadyRead();// 不带等待时间参数pingProcess.waitForFinished();QString p_stdout QString::fromLocal8Bit(pingProcess.readAllStandardOutput());bool bPingSuccess false;// 通过特殊字符串进行判断ping是否成功if (p_stdout.contains(TTL)) {// 网络连通bPingSuccess true;} else {// 网络不通bPingSuccess false;} }
http://www.pierceye.com/news/258165/

相关文章:

  • 大连h5建站学院网站建设申请报告
  • 大蒜做营销型网站贵州最好的网站建设推广公司
  • 单仁资讯做网站怎样备案网站应用服务
  • 如何生成一个网站怎么查看一个网站有没有做推广
  • 温州网站设计案例wdcp创建多个网站
  • 做个公司网站专业做网站app的公司
  • 动漫网站源码下载莱芜金点子最新招工信息
  • 小区住宅可以注册公司吗简述seo的概念
  • 做农村电商要多少钱南宁软件优化网站
  • 网站系统建设技术服务费网站建设 专项资金变更
  • 网站建设画册怎么用eclipse做网页
  • 百度网站安全检测平台广州番禺营销型网站建设
  • 杭州大的做网站的公司甘肃省住房和城乡建设部网站首页
  • 网站建设与网页设计考试题棋牌软件开发搭建
  • 短链接生成网址wordpress主叶SEO优化
  • 免费的cms视频网站做cpa怎么建立自己网站
  • 在哪里找做网站的北京的招聘网站有哪些
  • 做旅行网站aspx网站开发
  • 网站接入服务器商查询wordpress更换端口
  • 网站网页设计师武义县网站建设
  • 中铁建设集团有限公司官网建站到网站收录到优化
  • 做seo网站要多少钱网页设计师好吗
  • 建设部网站 绿色建筑评价表哪里页面设计培训好
  • 西部数码网站源码虹桥做网站公司
  • 生鲜网站开发wordpress mysql 链接
  • 做网站是怎么挣钱的网站建设福永附近网络公司
  • 关于网站制作的评价.net网站制作综合实训报告
  • 合肥专业制作网站科技创新绘画作品图片
  • 站内推广的主要目的是商业空间设计心得体会
  • 网站建设丨金手指15phpcms建设网站