1

Appleが提供したRechabilityクラスを入力した後。また、これを入力した後、到達可能性reachabilityWithAddress:(const struct sockaddr_in *)hostAddress。この行にチェックインするIPアドレスをどのように入力する必要がありますか?これは私が本当に迷っている部分です。

4

2 に答える 2

2

struct sockaddr_inBSD ソケットで使用される低レベルの「ソケット アドレス」タイプです。通常、Cocoa レベルでそれらを処理することはありませんが、Apple のデモ クラスを含め、時々忍び寄る可能性があります。その理由は、その作成関数の 1 つでSCNetworkReachabilitya を使用するためです。struct sockaddr_in

ただし、幸運なことに、+reachabilityWithHostName:メソッドで代わりに文字列を指定できます。これには IP アドレスが含まれます (ホスト名と同様に、基盤となるネットワーク API によって自動的に解決されます)。

Reachability *r = [Reachability reachabilityWithHostName:@"1.2.3.4"];
于 2012-08-29T12:57:35.643 に答える
0

次のことを試してください。

if ([[Reachability reachabilityForInternetConnection] currentReachabilityStatus] == NotReachable) {
        // do somehting meaningful!
}

またはより具体的に:

Reachability* reachability = [Reachability sharedReachability];
[reachability setHostName:@"www.google.com"]; // set your host name/ip here
NetworkStatus remoteHostStatus = [reachability remoteHostStatus];

if (remoteHostStatus == NotReachable) { NSLog(@"no"); }
else if (remoteHostStatus == ReachableViaWiFiNetwork) { NSLog(@"wifi"); }
else if (remoteHostStatus == ReachableViaCarrierDataNetwork) { NSLog(@"cellular"); }
于 2012-08-29T12:53:14.757 に答える