C++ 網(wǎng)絡(luò)連通性檢測(cè)的實(shí)現(xiàn)方法
C++ 網(wǎng)絡(luò)連通性檢測(cè)的實(shí)現(xiàn)方法
有時(shí)程序需要保持和某個(gè)指定網(wǎng)絡(luò)的連通,有人的情況下我們直接用ping命令查看即可,然而程序自身檢測(cè)會(huì)稍微麻煩一點(diǎn)。
實(shí)現(xiàn)思路如下:
用程序打開控制臺(tái)->運(yùn)行ping命令,并指定控制臺(tái)返回值寫入到文件中->分析文件,得到ping命令返回狀態(tài)->得到網(wǎng)絡(luò)連通情況
代碼如下:
#include <windows.h> #include <stdio.h> #include <string> using namespace std; bool AnalysisFile() { bool rState;//返回狀態(tài) FILE *file; char ln[80]; fopen_s(&file, "returnpingdata.txt", "r"); fgets(ln, 80, file);//讀入空行,舍棄 fgets(ln, 80, file);//讀入ping信息,舍棄 fgets(ln, 80, file);//讀入ping對(duì)象返回值,用來分析 string data = ln; int iPos = data.find("="); data = data.substr(iPos+1,3);//截取字符串返回字節(jié)數(shù) int n = atoi(data.c_str()); rState = n > 0; fclose(file); return rState; } void main() { // -n 1指定發(fā)送1位數(shù)據(jù),-w // 1000指定超過1000ms為超時(shí) // >returnpingdata.txt指定命令行返回值輸出到returnpingdata.txt文件中 char *cmdstr= "cmd /c ping www.baidu.com -n 1 -w 1000 >returnpingdata.txt"; WinExec(cmdstr, SW_HIDE); Sleep(1000);//等待1000ms bool returndata = AnalysisFile();//分析命令行返回文件,得到網(wǎng)絡(luò)連接情況 if (returndata==true) { printf("網(wǎng)絡(luò)連接成功\n"); } else { printf("網(wǎng)絡(luò)連接失敗\n"); } getchar(); }
如有疑問請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
Qt顯示QImage圖像在label上,并保持自適應(yīng)大小問題
這篇文章主要介紹了Qt顯示QImage圖像在label上,并保持自適應(yīng)大小問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11C++利用PCL點(diǎn)云庫(kù)操作txt文件詳解
這篇文章主要為大家詳細(xì)介紹了C++如何利用PCL點(diǎn)云庫(kù)操作txt文件,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以了解一下2024-01-01如何使用visual studio2019創(chuàng)建簡(jiǎn)單的MFC窗口(使用C++)
這篇文章主要介紹了如何使用visual studio2019創(chuàng)建簡(jiǎn)單的MFC窗口(使用C++),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03C++實(shí)現(xiàn)LeetCode(187.求重復(fù)的DNA序列)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(187.求重復(fù)的DNA序列),本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07