我正在使用 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)和(2或3或4)被调用(正确)
- 设备(使用 WiFi):方法(1)和(2 或 3 或 4)被调用(正确)
- 设备(使用 3G):仅调用方法 (1)。(不正确,我希望(2 或 3 或 4)也能得到 calleA)
我尝试了AppStore 中提供的一些应用程序( Network Ping Lite、Free Ping、Ping 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];
}