C++ 網(wǎng)絡(luò)連通性檢測(cè)的實(shí)現(xiàn)方法

目前成都創(chuàng)新互聯(lián)已為成百上千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁(yè)空間、網(wǎng)站改版維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、陽(yáng)原網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶(hù)導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶(hù)和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
有時(shí)程序需要保持和某個(gè)指定網(wǎng)絡(luò)的連通,有人的情況下我們直接用ping命令查看即可,然而程序自身檢測(cè)會(huì)稍微麻煩一點(diǎn)。
實(shí)現(xiàn)思路如下:
用程序打開(kāi)控制臺(tái)->運(yùn)行ping命令,并指定控制臺(tái)返回值寫(xiě)入到文件中->分析文件,得到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ì)象返回值,用來(lái)分析
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指定超過(guò)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();
}
如有疑問(wèn)請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
當(dāng)前題目:C++網(wǎng)絡(luò)連通性檢測(cè)的實(shí)現(xiàn)方法
分享URL:http://chinadenli.net/article26/gspijg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈、網(wǎng)站制作、外貿(mào)建站、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)