📄 pingtest.cpp
字号:
//版权:OVL
//版本号:1.0
//生成日期:2006年6月13日
//作者:陈卓
//模块目的/功能:通过调用系统的ping指令检测网络是否连通
//主要函数:Test(string ip) 返回测试值
// GetLineNum(FILE* fp) 返回测试结果文本字符数
#include "StdAfx.h"
#include ".\pingtest.h"
#include <stdio.h>
#include <string.h>
#include <process.h>
#define PING_RESULT 46 //ping通过结果的字符数
#define MAX_LINE_LENGHT 80 //一行最大字符数
//构造函数,目的:构造PingTest对象
//输入参数:无
//输出参数:无
//返回值:无
//调用关系:无
PingTest::PingTest(void)
{
}
//析构函数,目的:析构PingTest对象
//输入参数:无
//输出参数:无
//返回值:无
//调用关系:无
PingTest::~PingTest(void)
{
}
//测试函数
//目的:测试对象中ip地址能否连接
//输入参数:string ip用于保存ip地址
//输出参数:无
//返回值:如果能连接则返回TRUE,否则返回FALSE
//调用关系:调用类私有函数GetLineNum()以返回测试结果字符数
bool PingTest::Test(CString ip)
{
//第一步:执行ping命令生成c:\ping.txt
system("ping " + ip + " > c:\\ping.txt");
//第二步:读取ping.txt中的测试结果字符串字符数
FILE* fp; //用于打开ping.txt
int len; //ping.txt中测试结果的长度
if((fp = fopen("c:\\ping.txt","r"))==NULL) //打开ping.txt以便读入测试结果
{
printf("cannot open ping.txt\n");//不能打开文件
return false;
}
GetLineNum(fp);
GetLineNum(fp);
GetLineNum(fp);
len=GetLineNum(fp);//读取测试结果第四行字符数
fclose(fp);
//第三步:检测并返回测试结果
if (len < PING_RESULT)//小于ping通过结果的字符数就是ping不通
{
return false;//测试失败!
}else{
return true;//测试成功!
}
}
//内部私有函数
//目的:返回测试结果文本的字符数
//输入参数:FILE* fp表示字符所在的文件
//输出参数:无
//返回值:文件中测试结果文本的字符数
//调用关系:无
int PingTest::GetLineNum(FILE* fp)
{
int ch = fgetc(fp);
int nIndex = 0; //记录本行字符数
//如果文件未结束且读到的字符不是'\n'且未达到行最大字符数,就继续读入字符
while(!feof(fp) && (ch != '\n') && (nIndex < MAX_LINE_LENGHT))
{
nIndex++; //计数测试结果所在的行
ch = fgetc(fp);
}
return nIndex;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -