先介绍一下ping语句,详见cmd指令:

遇到一个情况,就是需要在Qt的程序中定时查看局域网中主机的状态,询问好友以及查阅相关资料后发现,可以使用Qt中的QPorcess调用ping语句来实现该功能。
示例代码如下:

#include <QProcess>
#include <QDebug>int main(int argc, char *argv[])
{if (0 == Process::execute("ping 127.0.0.1 -w 1")){qDebug() << "链路畅通";}else{qDebug() << "连接断开";}return 0;
}

上述代码仅仅是一个示例,使用的是QProcess里面的execute静态函数,这个函数需要传递一个QString的参数,这个参数我设置的是"ping 127.0.0.1 -w 1",作用是ping目标主机,-w表示每次回复的超时时间,详见上方的ping指令。
在本例中,如果超时了,会返回1,如果不超时,则返回0。
用它的返回值可以判定目标主机的畅通状态。

另外,因为这涉及到调用cmd,因此会占用大量的资源,如果通过定时器的方式,在GUI线程中频繁调用QProcess::execute函数,会出现卡顿的情况。解决方法是,重写一个QThread,将调用过程放进线程的run函数内,然后通过信号和槽的方式进行判定。

注:
在此,需要感谢一下小海和小黑同学,感谢他们提供的帮助和建议。

Qt调用ping语句相关推荐

  1. qt调用mysql调用了存储过_Qt调用Server SQL中的存储过程

    Server SQL中的存储过程如下: CREATE procedure PINSERTPC @pcnum int, @pcname varchar(50), @pctype int, @ipaddr ...

  2. QT调用python文件

    QT调用python文件 基本步骤 1.将python文件要是使用的环境添加到环境变量中 2.新建一个QT项目 3.在.pro文件中加入需要的python库文件目录 右击项目名,然后单击"添 ...

  3. Qt调用MATLAB

    Qt调用MATLAB 生成的dll经验分享 由于项目需要将生成的数据转成C3D运动捕捉格式,目前无C++转换算法,有MATLAB算法,考虑到C++重新码算法的时间,选择了将MATLAB算法直接转成C+ ...

  4. QT调用C#写的Dll

    QT调用C#写的Dll 参见: https://blog.csdn.net/weixin_42420155/article/details/81060945 C#写的dll是没有dllMain入口函数 ...

  5. body click js 委托_自动化测试之selenium调用JS语句

    首先,我们来了解一下selenium调用JS语句的优缺点. 优点: 1.不受页面前端显示限制.(例如有一些页面元素需要鼠标悬停在某处,或者页面比较长,需要移动内嵌拖动条) 2.可以直接修改页面的参数( ...

  6. Qt调用word 例子

    Qt调用word 例子 Getting Microsoft Word Object to SaveAs #include <QtGui> #include <QAxObject> ...

  7. linux python qt 安装目录,Linux 下QT调用Python库文件 以及Linux 安装Python3.8开发环境 问题...

    最近想运用linux系统下Qt来实现c++ 与python的混合编程,linux系统会自带python2.7版本或者python3.5版本(深度linux). Qt调用python文件需要在pro文件 ...

  8. dede调用sql语句的方法

    这篇文章给大家分享的是有关dede调用sql语句的方法的内容.小编觉得挺实用的,因此分享给大家做个参考.一起跟随小编过来看看吧.  dede的sql语句怎么调用?  sql语句调用,在一些特殊情况下还 ...

  9. QT调用C++写的Dll

    C#写的dll是没有dllMain入口函数的,是一种中间语言,需要.Net运行时进行做本地化工作,因此如果要调用C#写的dll,需要依赖.Net运行时,然而Qt中还无法直接调用.Net运行时,最好的方 ...

最新文章

  1. opengl加载显示3D模型ms3d类型文件
  2. MFC窗口标题栏隐藏
  3. [Java工具] 邮件发送工具
  4. JVM专题之垃圾回收器
  5. python数据分析df_Python数据分析pandas入门!(附数据分析资料)
  6. Android ContentProvider 使用介绍
  7. android 录屏工具,安卓手机上最好的录屏软件在这里
  8. 计算机第二道启动密码怎么设置,电脑一道密码怎么设置
  9. HBase之四--(1):Java操作Hbase进行建表、删表以及对数据进行增删改查,条件查询...
  10. python列表综合练习
  11. Build DCM4chee2
  12. php中的几个字符串操作函数strtoupper strtolower ucwords ucfirst lcfirst函数
  13. Beautifulsoup提取特定丁香园帖子回复
  14. html p 标签文字换行与不换行以及文字隐藏
  15. Linux RHCE常用命令,概念复习
  16. MySQL中如何定义一个自己写的函数
  17. MySQL插入表格数据的时候出现1265错误
  18. RVIZ 的菜单背景变成黑色
  19. 读懂波卡的“三把杀手锏”,跨链未来解决方案
  20. error execution phase kubelet-start: error uploading crisocket: timed out waiting for the condition

热门文章

  1. 基于Spring MVC + Spring + MyBatis的【图书资源管理系统】
  2. Android Java 代码检索工具Codota
  3. git下载uniapp+vk-unicloud前端项目后如何下载vk-unicloud插件
  4. 2022年回顾与计划
  5. Redis学习笔记(八)redis之lua脚本学习
  6. 百度音视频面试——一面
  7. GNSS/INS组合导航(三):GPS全球定位系统
  8. 2020年是做安卓开发人员的绝佳时机,android游戏开发入门题大学题
  9. 第十五届全国大学生信息安全竞赛知识问答(CISCN)
  10. calico支持cross-subnet模式