Ubuntu中基于QT的系统网线连接状态的实时监视
生活随笔
收集整理的這篇文章主要介紹了
Ubuntu中基于QT的系统网线连接状态的实时监视
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.必要準備
???????? 需包: #include <QNetworkInterface>
2.實現獲取當前的網線連接狀態
?????? 以下是自己在網絡上搜到的一個解決方法,且沒有加入iface.flags().testFlag(QNetworkInterface::IsRunning) 這一邏輯判斷,經測試實時性極不可靠,在虛擬機里調試時發現有時候有10s左右的延遲,但運行在嵌入式系統上時幾乎就是一擺設。于是自己閱讀QT幫助嘗試了多種方法并加以改造,發現加入了第二項條件判斷后,結果就非常的可靠了。
[cpp]?view plaincopy- bool?isConnectedToNetwork()??
- {??
- ????QList<QNetworkInterface>?ifaces?=?QNetworkInterface::allInterfaces();??
- ????bool?isConnected?=?false;??
- ??
- ????for?(int?i?=?0;?i?<?ifaces.count();?i++)??
- ????{??
- ????????QNetworkInterface?iface?=?ifaces.at(i);??
- ????????if?(?iface.flags().testFlag(QNetworkInterface::IsUp)??
- ?????????????&&?iface.flags().testFlag(QNetworkInterface::IsRunning)??
- ?????????????&&?!iface.flags().testFlag(QNetworkInterface::IsLoopBack)??
- ??????????????)??
- ????????{??
- ??
- ????????????//?this?loop?is?important??
- ????????????for?(int?j=0;?j<iface.addressEntries().count();?j++)??
- ????????????{??
- ????????????????//?we?have?an?interface?that?is?up,?and?has?an?ip?address??
- ????????????????//?therefore?the?link?is?present??
- ??
- ????????????????//?we?will?only?enable?this?check?on?first?positive,??
- ????????????????//?all?later?results?are?incorrect??
- ????????????????if?(isConnected?==?false)??
- ????????????????????isConnected?=?true;??
- ????????????}??
- ????????}??
- ??
- ????}??
- ??
- ????return?isConnected;??
- }??
3. 實時性監測實現
??? 實時性的實現是利用了QT的定時器和信號與槽機制。這個大家甚至比我都清楚,就不啰嗦了。
轉自:http://blog.csdn.net/u010492096/article/details/40110749
轉載于:https://www.cnblogs.com/liushui-sky/p/6479466.html
總結
以上是生活随笔為你收集整理的Ubuntu中基于QT的系统网线连接状态的实时监视的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 源码-0205-02--聊天布局
- 下一篇: 转: windows系统下mysql出现