ローカルネットワーク上の特定のホストが "稼働中"であるかどうかを確認できます。Objective CでのIPアドレスの接続性/可用性のテスト
次のコード行は、ホストに到達できない場合にハングするため、実行する前にまずチェックを実行したいと考えています。
[_outputStream write:[data bytes] maxLength:[data length]];
私は、次のリンクに答えていると思いますが、私はここでCFHostCreateWithAddress
はなくCFHostCreateWithName
Alternatives to NSHost in iPhone app
を使用する必要があると思うなクエリは、私がしようとしている何で私の試みですdo ...
Boolean result;
struct sockaddr_in address;
address.sin_family = AF_INET;
address.sin_port = htons(80);
inet_pton(AF_INET, "192.168.1.31", &address.sin_addr);
CFDataRef sockData = CFDataCreate(NULL, &address, sizeof(address));
CFHostRef host = CFHostCreateWithAddress(NULL, sockData);
result = CFHostStartInfoResolution(host, kCFHostAddresses, NULL);
if (result == TRUE) {
NSLog(@"Resolved");
} else {
NSLog(@"Not resolved");
}
ホストが起動しても解決されません。
以下はReachabilityクラスを使用しようとした私の試みです。私のコードは、指定されたアドレスにホストが存在しないにもかかわらず、以下のアドレスが到達可能であることを私に伝えています。
struct sockaddr_in address;
address.sin_family = AF_INET;
address.sin_port = htons(80);
inet_pton(AF_INET, "192.168.1.31", &address.sin_addr);
Reachability *reachability = [Reachability reachabilityWithAddress:&address];
NetworkStatus reachabilitytoHost = [reachability currentReachabilityStatus];
if(reachabilitytoHost != NotReachable)
{
NSLog(@"Reachable");
}
else
{
NSLog(@"Not Reachable");
}
..注:Reachabilityは特定のホストに接続できるかどうかをアプリケーションに伝えることはできず、接続を許可する可能性のあるインターフェイスしか利用できないことを示しています。「基本的にReachabilityは指定されたアドレスにホストがあるそのホストへのルートが存在する場合は、それが有望なルートであることを示します。私はそれを試したときにこれを見つけたと確信しています。到達可能性は、指定されたアドレスにマシンがないのにホストに到達可能であることを伝えていました。 – Wayne
Uhm、ok、その場合は、単にWKWebViewクラスを使用してみて、あなたが探しているURLを開こうとしましたか?デリゲートを使用して、エラー応答を出すかどうかを確認します。 – trdavidson