Apple的SimplePing不适用于3G

时间:2012-07-26 07:51:27

标签: iphone ios

我正在使用Apple的SimplePing来ping iPhone上的主机。我希望以下委托方法能够正常工作。

(1) - (void)simplePing:(SimplePing *)pinger didSendPacket:(NSData *)packet;
(2) - (void)simplePing:(SimplePing *)pinger didReceivePingResponsePacket:(NSData *)packet;
(3) - (void)simplePing:(SimplePing *)pinger didReceiveUnexpectedPacket:(NSData *)packet;
(4) - (void)simplePing:(SimplePing *)pinger didFailToSendPacket:(NSData *)packet error:(NSError *)error;

结果是......

  1. 模拟器:方法(1)& (2或3或4)被调用(正确)
  2. 设备(使用WiFi):方法(1)& (2或3或4)被调用(正确)
  3. 设备(使用3G):只调用方法(1)。 (不正确,我希望(2或3或4)也能得到calleA)
  4. 我尝试了AppStore中提供的一些应用(Network Ping LiteFree PingPing Free)。他们的结果与我的相似。

    我不知道这是Apple的SimplePing示例代码中的错误还是我需要做一些其他配置?

    以下是我用过的代码

    - (void)viewDidLoad {
        [super viewDidLoad];
        self.simplePing = [SimplePing simplePingWithHostName:@"www.google.com"];
        [self.simplePing setDelegate:self];
        [self.simplePing start];
    }
    
    - (void)simplePing:(SimplePing *)pinger didStartWithAddress:(NSData *)address {
        [self.simplePing sendPingWithData:nil];
    }
    

1 个答案:

答案 0 :(得分:0)

简单地说:

您无法验证特定运营商是否支持通过移动网络支持ping。