0

我正在使用 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)

我尝试了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];
}
4

1 回答 1

0

简单地:

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

于 2012-07-30T07:36:45.097 回答