0

Apple の SimplePing を使用して、iPhone 上のホストに ping を実行しています。次のデリゲート メソッドが機能することを期待しています。

(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 に答える