www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 嵌入式 > 嵌入式大雜燴
[導讀]嵌入式Linux開發(fā)中,有時候我們程序需要檢測設備的聯(lián)網(wǎng)狀態(tài)。這里分享兩種方法:方法一:創(chuàng)建一個socket client嘗試去鏈接一個服務器。方法二:通過檢測sysfs下的對應文件。

大家好,我是雜燴君。

嵌入式Linux開發(fā)中,有時候我們程序需要檢測設備的聯(lián)網(wǎng)狀態(tài)。這里分享兩種方法:

方法一:創(chuàng)建一個socket client嘗試去鏈接一個服務器。

方法二:通過檢測sysfs下的對應文件。

方法一

static int check_net_status(void) { int sock_cli = socket(AF_INET, SOCK_STREAM, 0); if (sock_cli < 0)
    {
        perror("socket"); return -1;
    } struct sockaddr_in servaddr; memset(&servaddr, 0, sizeof(servaddr));
    servaddr.sin_family = AF_INET;
    servaddr.sin_port = htons(80);
    servaddr.sin_addr.s_addr = inet_addr("114.114.114.114"); if (connect(sock_cli, (struct sockaddr *)&servaddr, sizeof(servaddr)) < 0)
    {
        perror("connect"); return -1;
    } printf("connect ok!\n"); return 0;
}

定時去連接一個服務器,連不上了就表明網(wǎng)絡斷開了。但是這種方法沒那么準確,實際是網(wǎng)絡已經(jīng)斷開了大概二十秒之后,才檢測得到網(wǎng)絡斷開。

方法二

/sys/class 是由kernel在運行時導出的,目的是通過文件系統(tǒng)暴露出硬件的層級關系。

我們可以檢測相應的文件來實時得得到網(wǎng)絡連接的狀態(tài)。

比如,檢測無線網(wǎng)絡的連接狀態(tài),可檢測文件:

/sys/class/net/wlan0/operstate

檢測有線網(wǎng)絡的連接狀態(tài),可檢測文件:

/sys/class/net/eth0/operstate

可以通過命令行讀取,返回down則表明設備網(wǎng)絡已斷開,返回up則表明設備網(wǎng)絡已連接:

image-20220918115432404

也可以在C代碼中進行檢測,測試代碼如:

#include  #include  #include  #include  #include  #include        // bind #include  #include  #include       // struct sockaddr_in #include       // for function htons typedef enum _net_conn_status
{
    NET_DISCONNECT = -1,
    NET_CONNECT = 1 }net_conn_status_e; static int check_net_status(void) { int ret = 0; static char cmd_out[128] = {0};
    FILE *fp = popen("cat /sys/class/net/wlan0/operstate", "r"); if(fp == NULL)
    { printf("popen error\n"); return -1;
    }

    bzero(cmd_out, sizeof(cmd_out)); fscanf(fp, "%s", cmd_out);
    pclose(fp); // printf("cmd_out = %s\n", cmd_out); if (0 == strcmp((char*)cmd_out, "down"))
    { // printf("net disconnect\n"); return -1;
    } else if (0 == strcmp((char*)cmd_out, "up"))
    { // printf("net connect\n"); return 1;
    }else{} return ret;
} int main(int argc, char **argv) { while (1)
    { if (NET_DISCONNECT == check_net_status())
        { printf("net disconnect====================\n");
        } else if (NET_CONNECT == check_net_status())
        { printf("net connect====================\n");
        }
        usleep(10 * 1000);
    } return 0;
}

運行:

這種方法可以比較實時地檢測到網(wǎng)絡狀態(tài)的變化。

以上本次的分享,期待你的三連支持!

注意

由于微信公眾號近期改變了推送規(guī)則,為了防止找不到,可以星標置頂,這樣每次推送的文章才會出現(xiàn)在您的訂閱列表里。

猜你喜歡:

分享一種靈活性很高的協(xié)議格式(附代碼例子)

嵌入式大雜燴周記 | 第 16 期

嵌入式大雜燴周記 | 第 15 期

訪問非法內(nèi)存為什么不會出錯?

嵌入式大雜燴周記 | 第 14 期

分享幾個實用的代碼片段(第二彈)

分享一種你可能不知道的bug定位方法

分享一種修改配置文件的方法

《嵌入式大雜燴周記第 13 期:lz4》

《嵌入式并行多線程處理器,了解一下!》

《分享一種修改配置文件的方法》

《分享幾個實用的代碼片段(附代碼例子)》

《廢舊板子再利用:搭建無線調(diào)試環(huán)境!》

《嵌入式段錯誤的3種調(diào)試方法匯總!》

《簡說TCP通信非阻塞接收(附代碼例子)》

《TCP通信常用接口的使用封裝》

《寫國際化的嵌入式代碼,時間問題如何處理?》

《Linux命令行萬能解壓命令》

《嵌入式軟件中,總線錯誤的坑?替大家先踩一步》

《分享嵌入式軟件調(diào)試方法及幾個有用的工具!》

《分享兩點提高編程能力的建議!》


在公眾號聊天界面回復1024,可獲取嵌入式資源;回復 m ,可查看文章匯總

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

本屆年會將在上海(11月13-14日)、北京(11月19-20日)和深圳(11月27-28日)舉行,面向嵌入式設計工程師推出25門技術課程

關鍵字: 嵌入式 MCU 模擬

上海2025年9月5日 /美通社/ -- 由紐倫堡會展(上海)有限公司舉辦的上海國際嵌入式會議將于 2025 年 10 月 16-17 日在上海世博展覽館舉辦。 此次會議將由三個版塊組成:嵌入式技術會議、汽...

關鍵字: 嵌入式 CE CHINA EMBEDDED

9 月 5 日,一則關于英偉達的商業(yè)動態(tài)引發(fā)行業(yè)關注。這家 AI 芯片巨頭斥資 15 億美元,從人工智能小型云服務提供商 Lambda 手中,租用了搭載自家 GPU 芯片的服務器。

關鍵字: 英偉達 GPU 服務器 AI芯片

從外部看,電子系統(tǒng)仿佛一個統(tǒng)一的學科或設備,各組成部分協(xié)同工作,渾然一體。然而揭開表象,其內(nèi)在卻是另一番景象:一個碎片化、多層次的世界——其中每一層都獨立且復雜,衍生出各自特有的工具、專家、工作流程,甚至哲學體系。

關鍵字: 嵌入式 電子系統(tǒng) 半導體

8位單片機在嵌入式設計領域已經(jīng)成為半個多世紀以來的主流選擇。盡管嵌入式系統(tǒng)市場日益復雜,8位單片機依然不斷發(fā)展,積極應對新的挑戰(zhàn)和系統(tǒng)需求。如今,Microchip推出的8位PIC?和AVR?單片機系列,配備了先進的獨立...

關鍵字: 單片機 嵌入式 CPU

往期發(fā)布了基于小華HC32F334數(shù)字電源控制器的兩路交錯無橋圖騰柱TCM PFC參考設計,TCM PFC以其全輸入范圍下軟開關的優(yōu)勢越來越受到服務器電源以及通信電源的青睞。同時,兩路交錯無橋圖騰柱CCM PFC因其EM...

關鍵字: 數(shù)字電源控制器 服務器 濾波器

深圳2025年8月28日 /美通社/ -- 8月26日,2025 ELEXCON深圳國際電子展盛大啟幕。本屆大會以"All for AI"為主題,深圳市德...

關鍵字: AI 工業(yè)級 SSD 嵌入式

深圳2025年8月26日 /美通社/ -- 8月26日,由博聞創(chuàng)意會展主辦的 第22屆深圳國際電子展暨嵌入式展(elexcon2025)在深圳(福田)會展中心隆重開幕。 作為中國電子與嵌入式技術領域的專業(yè)大展,本屆展會...

關鍵字: 嵌入式 電子 高通 AI

Aug. 21, 2025 ---- 根據(jù)TrendForce集邦咨詢最新液冷產(chǎn)業(yè)研究,隨著NVIDIA GB200 NVL72機柜式服務器于2025年放量出貨,云端業(yè)者加速升級AI數(shù)據(jù)中心架構,促使液冷技術從早期試點邁...

關鍵字: AI 數(shù)據(jù)中心 服務器

模塊化設計作為一種將系統(tǒng)拆分為獨立、可復用組件的方法,能夠在低代碼平臺中實現(xiàn)功能的靈活組合,并最大限度地提升系統(tǒng)性能。本文將探討如何通過模塊化設計,使得低代碼平臺既能快速適應變化,又能保持高效穩(wěn)定的運行。

關鍵字: 模塊化設計 嵌入式
關閉