2012-07-26 91 views
0

我正在使用Apple的SimplePing在iPhone上ping主机。我期望以下委托方法可以工作。Apple的SimplePing无法通过3G工作

(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)g ets叫。 (不正确的,我希望(2或3或4)也得到calleA)

我尝试了一些(Network Ping LiteFree PingPing Free)在AppStore上可用的应用程序。他们的结果与我的相似。

我不想知道这是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

是的,有些手机不支持ping通3G网络。 – CarlJ 2012-07-26 07:57:03

+0

有没有一种方法可以验证您的观点?换句话说,我怎样才能确定运营商是否支持Ping。 – Sahil 2012-07-26 08:07:03

+0

简单地说:您无法验证特定运营商是否支持通过移动网络进行ping。 – CarlJ 2012-07-26 08:09:09

回答

0

简单的代码:

你无法验证一个特定的运营商支持或不支持平通过移动网络。