利用ICMP控制报文协议 来判断两端之间的网络速度
来源:互联网 发布:java的优点和缺点 编辑:程序博客网 时间:2024/06/05 14:40
#include <Icmpapi.h>
#pragma comment(lib,"iphlpapi.lib")
void TestFunc()
{
HANDLE icmpHwnd;
icmpHwnd=IcmpCreateFile();
IPAddr pAddr;
pAddr=(IPAddr)inet_addr("192.168.8.169");
icmp_echo_reply pData;
for(int i=1;i<=1;i++)
{
IcmpSendEcho(icmpHwnd,pAddr,NULL,0,NULL,(LPVOID)&pData,sizeof(icmp_echo_reply),0);
if (pData.Status==0)
{
//printf("Ping测试返回的结果: Time=%dms TTL=%d \n",(int)pData.RoundTripTime(int)pData.Options.Ttl);
}
}
}
你可能会发现,用IcmpSendEcho 测试 127.0.0.1的时候,ICMP_ECHO_REPLY.RoundTripTime 会等于0
其实,这个函数是没有出错的,即使用Ping 127.0.0.1也是可以的
那么应该怎么去判断这个函数出错呢?
用 ICMP_ECHO_REPLY.Status 来获得测试状态(记住,当Status为0的时候,函数是正确运行的)
常量名
值
含义
IP_SUCCESS
0
状态是成功。
IP_BUF_TOO_SMALL
11001
答复缓冲区太小。
IP_DEST_NET_UNREACHABLE
11002
目标网络不可达。
IP_DEST_HOST_UNREACHABLE
11003
目标主机不可达。
IP_DEST_PROT_UNREACHABLE
11004
目的地的协议是遥不可及。
IP_DEST_PORT_UNREACHABLE
11005
目标端口不可达。
IP_NO_RESOURCES
11006
IP资源不足是可用的。
IP_BAD_OPTION
11007
指定了错误的IP选项。
IP_HW_ERROR
11008
一个硬件错误。
IP_PACKET_TOO_BIG
11009
包太大。
IP_REQ_TIMED_OUT
11010
请求超时。
IP_BAD_REQ
11011
一个坏的请求。
IP_BAD_ROUTE
11012
一个糟糕的路线。
IP_TTL_EXPIRED_TRANSIT
11013
在传输过程中的生存时间(TTL)的过期。
IP_TTL_EXPIRED_REASSEM
11014
在碎片重组过程中的生存时间过期。
IP_PARAM_PROBLEM
11015
一个参数的问题。
IP_SOURCE_QUENCH
11016
数据报到达太快,处理和数据报可能被丢弃。
IP_OPTION_TOO_BIG
11017
一个IP选项是太大了。
IP_BAD_DESTINATION
11018
一个坏的目的地。
IP_GENERAL_FAILURE
11050
一般故障。这个错误可以返回一些畸形的ICMP数据包
0 0
- 利用ICMP控制报文协议 来判断两端之间的网络速度
- 网络层--网际控制报文协议ICMP
- ICMP控制报文协议
- ICMP控制报文协议
- ICMP控制报文协议
- ICMP控制报文协议
- 网络层协议之报文控制机协议ICMP
- ICMP:Internet控制报文协议
- ICMP网际控制报文协议
- 因特网控制报文协议ICMP
- ICMP:Internet控制报文协议
- ICMP:internet控制报文协议
- ICMP:网际控制报文协议
- ICMP:Internet控制报文协议
- ICMP:Internet控制报文协议
- ICMP:Internet控制报文协议
- ICMP (网际控制报文协议)
- ICMP Internet 控制报文协议
- Windows Phone 应用程序的全球化
- Eclipse"项目"和"工作空间"的区别
- 内省——>javaBean
- Android实例讲解之观察者模式
- Mysql,Oracle,Java数据类型对应
- 利用ICMP控制报文协议 来判断两端之间的网络速度
- .bat文件运行后,cmd窗口退出问题
- 《JAVA与模式》之观察者模式(行为)
- 手机Web开发框架集
- 千山晚霞 一世纷杂 谁又把谁刻在心头画
- pb多行编辑控件显示文本时不换行
- jQuery整理笔记七----几个经典表单应用 .
- Linux环境编程之进程(五):竞争条件以及exec函数
- VS2008调试Release程序--Dump文件方式