1.必要准备

需包: #include <QNetworkInterface>

2.实现获取当前的网线连接状态

以下是自己在网络上搜到的一个解决方法,且没有加入iface.flags().testFlag(QNetworkInterface::IsRunning) 这一逻辑判断,经测试实时性极不可靠,在虚拟机里调试时发现有时候有10s左右的延迟,但运行在嵌入式系统上时几乎就是一摆设。于是自己阅读QT帮助尝试了多种方法并加以改造,发现加入了第二项条件判断后,结果就非常的可靠了。

[cpp] view plaincopy
  1. bool isConnectedToNetwork()
  2. {
  3. QList<QNetworkInterface> ifaces = QNetworkInterface::allInterfaces();
  4. bool isConnected = false;
  5. for (int i = 0; i < ifaces.count(); i++)
  6. {
  7. QNetworkInterface iface = ifaces.at(i);
  8. if ( iface.flags().testFlag(QNetworkInterface::IsUp)
  9. && iface.flags().testFlag(QNetworkInterface::IsRunning)
  10. && !iface.flags().testFlag(QNetworkInterface::IsLoopBack)
  11. )
  12. {
  13. // this loop is important
  14. for (int j=0; j<iface.addressEntries().count(); j++)
  15. {
  16. // we have an interface that is up, and has an ip address
  17. // therefore the link is present
  18. // we will only enable this check on first positive,
  19. // all later results are incorrect
  20. if (isConnected == false)
  21. isConnected = true;
  22. }
  23. }
  24. }
  25. return isConnected;
  26. }

3. 实时性监测实现

实时性的实现是利用了QT的定时器和信号与槽机制。这个大家甚至比我都清楚,就不啰嗦了。

转自:http://blog.csdn.net/u010492096/article/details/40110749

转载于:https://www.cnblogs.com/liushui-sky/p/6479466.html

Ubuntu中基于QT的系统网线连接状态的实时监视相关推荐

  1. 在Win10的Linux子系统Ubuntu中使用Qt

    在Win10的Linux子系统Ubuntu中使用Qt 陈拓 2021/07/26-2021/07/26 1. 概述 在<Win10的Linux子系统Ubuntu安装图形界面> https: ...

  2. linux查看哪个网卡插着网线,(笔记)Linux下检测网卡与网线连接状态

    Linux下检测网卡与网线连接状态,使用ioctl向socket发送SIOCETHTOOL命令字. #include #include #include #include #include #incl ...

  3. Ubuntu中安装Qt

    文章目录 Ubuntu中安装必要的软件 安装流程 配置 运行 配置运行 Ubuntu中安装必要的软件 主要为了打开图形程序 sudo apt-get update sudo apt-get --ass ...

  4. Ubuntu下基于Qt框架,使用WebRtc开发总结(二):Qt工程配置总结

    .Pro文件的配置 那么,接上一部分,根据自己是否需要显示视频,新建一个Qt的控制台/窗口程序,并根据自己的开发需要添加Qt的组件,我的工程添加了如下的组件: QT += core websocket ...

  5. 关于Ubuntu中Firefox浏览器提示“代理服务器拒绝连接”的解决办法

    VMware虚拟机中安装了Ubuntu系统,Firefox浏览器显示"代理服务器拒绝连接",在VMware中的虚拟网络编辑器选项中选择了<还原默认设置>,重启后还是显示 ...

  6. 在ubuntu中使用命令行工具sqlcmd连接sql server数据库

    步骤: 首先安装sqlcmd工具 注意:如果你连接的用户是 root用户,命令中带有 sudo 的,sudo都可以酌情去掉,不行再加上 1 安装curl软件包: sudo apt install cu ...

  7. ubuntu 中的qt怎么调用graphics.h_Qt 标准对话框之 QFileDialog

    Qt 标准对话框之 QFileDialog <Qt 学习之路>已经写到了第15篇,然而现在再写下去却有点困难,原因是当初并没有想到会连续的写下去,因此并没有很好的计划这些内容究竟该怎样去写 ...

  8. 树莓派中基于Qt的图像显示image.[微雪电子树莓派Qt系列教程]

    Waveshare前言 在qml的常用元素中,image图像元素绝对算得上是比较常用的了.image用于展示图片,使用source属性可以使用URL指定一张图片. image可以展示Qt支持的任何标准 ...

  9. QT每日一练day4:ubuntu中使用QT

    (本文主要是为了说明QT的跨平台特性)   一.安装QT sudo apt-get install qt5-default qtcreator cmake 二.打开QT 可以点击图标或命令行方式: 三 ...

最新文章

  1. 使用nc检测udp端口是否可以正常通讯
  2. ajax判断密码是否一致,jquery.validate ajax方式验证密码是否正确
  3. [BZOJ1322]Destroying The Graph
  4. 知道坐标matlab三维作图,已知点坐标,要求根据坐标作出三维曲面图
  5. python语句int_python中的int函数
  6. js判断对象是否为空对象_js对象
  7. Q绑查询html单页源码 自带接口
  8. Hive的数据库和表
  9. sharedpreferences使用方法_Google 推荐在 MVVM 架构中使用 Kotlin Flow
  10. 重磅分享(二)——决策引擎实战部署
  11. cocos2d-x(概括)
  12. QtcpSocket readyRead 粘包解法
  13. android svg 线条动画教程,SVG 实现复杂线条动画
  14. Spring中AOP的Introductions使用介绍(五)
  15. 一键清除系统垃圾文件的bat批处理命令
  16. oracle hot patch david,Hot Patch工具Rollout
  17. 国际计算机编程大赛报名,关于举办2020年新生编程大赛的报名通知
  18. 三星note20u计算机功能,三星Note20Ultra隐藏功能有哪些-藏功能操作方法
  19. 解决hive 中 beeline无法连接问题
  20. 关于戴尔电脑物理内存(灵越7590)

热门文章

  1. 未能从程序集 XX加载类型XXX的错误解决方法(借以提醒NHibernate使用者)
  2. 2021河南省高考文科成绩排名查询,2021年河南高考成绩排名及一分一段表
  3. x86架构手机_都是芯片,为什么电脑CPU不能用在手机里?
  4. android 数据库索引,SQLite数据库提供警告自动索引(列)升级Android L后
  5. android clean 框架,clean架构
  6. ajax csv写文件内容,接收.csv文件作为ajax成功函数中的数据
  7. 初识Redis,看这一篇就够了
  8. 机器学习四剑客1——Numpy
  9. 使用Python,OpenCV从静态背景中提取移动前景
  10. KMP-next数组