1.必要准备

需包: #include <QNetworkInterface>

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

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

  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

Ubuntu中基于QT的系统网线连接状态的实时监视的更多相关文章

  1. (笔记)Linux下检测网卡与网线连接状态

    http://blog.chinaunix.net/space.php?uid=20357359&do=blog&cuid=1798479 Linux下检测网卡与网线连接状态,使用io ...

  2. Ubuntu中在QT中配置OpenGL

    之前搞实验室项目,博客有些天没有更新.现在学习需要,开始搞OpenGL+Ubuntu+QT. 搞了整整一天,由于是首次使用ubuntu,所以这ubuntu下配置qt和Opengl环境时走了很多的弯路, ...

  3. 在Ubuntu中编译QT工程Tesful

    今天晚上开机到Ubuntu中了,试了一下之前在Windows下建立的Tesful工程,发现没有任何改动就可以编译成功/运行. 附上图:

  4. 随记PC-win7 64位系统网络连接状态一直转圈、等待状态的异常解决方案

    各位看官好~ 最近电脑也做了下升级,入手个士必得360G的SSD来玩玩,顺便也下个新系统,看看有什么区别,想想顺便升级下系统也是好的,就开始了装机,装系统的路程~~~~~~ 好了不说废话,直接进入主题 ...

  5. 在ubuntu中屏蔽“检测到系统程序出现问题”对话框

    ubuntu各个版本中都会时常遇到 “检测到系统程序出现问题”对话框 这是由于ubuntu系统中的“Apport”即错误信息的收集报告系统,将所有系统错误告警都不分大小和主次全部通知你,严重影响我们正 ...

  6. Ubuntu中打开Qt creator,提示无法覆盖文件 /home/username/.config/Nokia/qtversion.xml : Permission denied

    官网下载qt*.run文件安装后 打开Qt creator,提示无法覆盖文件 /home/username/.config/Nokia/qtversion.xml : Permission denie ...

  7. 在nagios中监控windows主机系统地址的状态

    原来的[root@nhserver2_5 objects]# cd /usr/local/nagios/etc/objects[root@nhserver2_5 objects]# vim comma ...

  8. 树莓派网线连接后通过ssh远程连接

    新安装的树莓派默认是不支持ssh远程连接的,通过PuTTY (64-bit)会提示连接被拒绝. 本文支持笔记本或pc直接通过网线连接树莓派,具体操作步骤如下: 一.确定树莓派的ip地址及是否开启ssh ...

  9. 基于HiKariCP组件,分析连接池原理

    HiKariCP作为SpringBoot2框架的默认连接池,号称是跑的最快的连接池,数据库连接池与之前两篇提到的线程池和对象池,从设计的原理上都是基于池化思想,只是在实现方式上有各自的特点:

随机推荐

  1. JQuery设置获取下拉菜单选项的值 多实例

    分享下JQuery如何设置获取下拉菜单某个选项的值,多种方法,值得收藏. JQuery获取和设置Select选项 获取Select :获取select 选中的 text :$(“#ddlRegType ...

  2. apache做转发

    一台WIN服务器,上面主要装了WAMP程序来运行PHP 的相关东西,现在在机子里的IIS建立了一个ASP.NET站点,访问端口88,服务器上可以:http://127.0.0.1:88来访问.NET网 ...

  3. Win7多用户情况下,指定某一用户为自动登陆-解决办法

    转自:http://sbiuggypm.themex.net/archives/605 许久没更新博客了,但从后台可以查看到,有不少朋友还是几乎每天来逛一逛,很对不起的是最近都没更新啥内容.真是不好意 ...

  4. nginx.conf中关于nginx-rtmp-module配置指令详解

    译序:截至 Jul 8th,2013 官方公布的最新 Nginx RTMP 模块 nginx-rtmp-module 指令详解.指令Corertmp语法:rtmp { ... }上下文:根描述:保存所 ...

  5. 【小白的CFD之旅】20 计算区域的构建

    计算域是什么计算域如何创建常用的建模软件计算域几何的特殊之处具体的计算域提取方法小白总结 自从上次在食堂听了小牛师兄关于计算网格的一些问题后,小白决定在寒假期间好好的补习一下关于计算网格的划分内容.在 ...

  6. 乐观锁的一种实现方式—CAS

    线程安全 众所周知,Java是多线程的.但是,Java对多线程的支持其实是一把双刃剑.一旦涉及到多个线程操作共享资源的情况时,处理不好就可能产生线程安全问题.线程安全性可能是非常复杂的,在没有充足的同 ...

  7. canvas的图片绘制案例

    <!doctype html><html lang="en"><head> <meta charset="UTF-8" ...

  8. Python实现二叉树的左中右序遍历

    #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/3/18 12:31 # @Author : baoshan # @Site ...

  9. MySQL字段数据全部查出【只保留中文、英文、数字、空格的词表】

    select * from xxx_xxx_bak where slot_type_id in ('xxx', 'xxx') ; by @大超超 记录备查

  10. LeetCode: Search in Rotated Sorted Array II 解题报告

    Search in Rotated Sorted Array II Follow up for "LeetCode: Search in Rotated Sorted Array 解题报告& ...