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)文章
C語言中獲取進(jìn)程識(shí)別碼的相關(guān)函數(shù)
這篇文章主要介紹了C語言中獲取進(jìn)程識(shí)別碼的相關(guān)函數(shù),分別為getpid()函數(shù)和getppid()函數(shù)的使用,需要的朋友可以參考下2015-08-08
C++ 面向?qū)ο蟪绦蛟O(shè)計(jì)--內(nèi)存分區(qū)詳解
這篇文章主要介紹了剖析C++的面向?qū)ο缶幊趟枷?C++的面向?qū)ο筇匦允瞧鋵?duì)C語言的重要拓展之處,需要的朋友可以參考下,希望能夠給你帶來幫助2021-08-08
整型數(shù)據(jù)在內(nèi)存中存儲(chǔ)方式的講解
今天小編就為大家分享一篇關(guān)于整型數(shù)據(jù)在內(nèi)存中存儲(chǔ)方式的講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-02-02
C++中std::priority_queue的使用小結(jié)
std::priority_queue是C++ STL提供的優(yōu)先隊(duì)列,本文主要介紹了C++中std::priority_queue的使用小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下2025-04-04

