利用ICMP协议的PING命令获取客户端当前网络质量 by徐文棋

无论在windows下,linux也好,unix也好,都可以通过 Ping命令获得当前设备的网络延迟,延迟是客户端到服务端的网络响应时间.通常延迟越低,反应速度越快

这里使用了SimplePing   时对其使用方法进行封装.

导入头文件

PingHelper.h

调用代码:

    [PingHelper pingTo:@"127.0.0.1" withTimes:3 inBlock:^(NetworkQuality quality) {
        switch (quality) {
            case GOOD:
                NSLog(@"网络不错");
                break;
            case NORMAL:
                NSLog(@"网络一般");
                break;
            case BAD:
                NSLog(@"网络好差");
                break;
            case UNUSEFUL:
                NSLog(@"网络不可用");
                break;
            default:
                break;
        }
    }];

封装好的类:http://files.cnblogs.com/files/sixindev/PingHelper.zip

调用代码中 127.0.0.1可以替换为应用接口的IP地址

PS:该功能是通过多次循环ping(循环次数可在调用方法中控制),计算平均延迟后得出的结果..

原文地址:https://www.cnblogs.com/sixindev/p/4488462.html