套接字连接的iOS可达性

套接字连接的iOS可达性,ios,objective-c,sockets,reachability,Ios,Objective C,Sockets,Reachability,我需要检查应用程序中套接字连接的可达性。我已经浏览了苹果的示例代码和从SO和其他网站上找到的一些示例,但我运气不佳,因为我没有得到任何回应。下面是我正在尝试的示例代码 我的要求只是验证到myhost:port的连接,该端口是套接字连接。myhost是dyndns.org的地址 struct sockaddr_in server_address; server_address.sin_len = sizeof(server_address); server_address.sin_

我需要检查应用程序中套接字连接的可达性。我已经浏览了苹果的示例代码和从SO和其他网站上找到的一些示例,但我运气不佳,因为我没有得到任何回应。下面是我正在尝试的示例代码

我的要求只是验证到myhost:port的连接,该端口是套接字连接。myhost是dyndns.org的地址

struct sockaddr_in server_address;
    server_address.sin_len = sizeof(server_address);
    server_address.sin_family = AF_INET;
    server_address.sin_port = htons(1234);
    server_address.sin_addr.s_addr = inet_addr("host-from-dyndns.org");

    Reachability *reachability = [Reachability reachabilityWithAddress:&server_address];

    __weak Reachability *weakReachability = reachability;
    reachability.reachableBlock = ^(Reachability*reach)
    {
        dispatch_async(dispatch_get_main_queue(), ^{
            NSLog(@"REACHABLE!");
        });
        [weakReachability stopNotifier];
    };

    reachability.unreachableBlock = ^(Reachability*reach)
    {
        NSLog(@"UNREACHABLE!");
        [weakReachability stopNotifier];
    };

    [reachability startNotifier];

在几次尝试处理可达性类失败后,我放弃了,并使用了按需创建的临时异步套接字连接来验证连接。它按预期工作,并建立在gcd之上。我还发现Robbie Hanson()的AsyncSocket在实现我的需求时非常有用

您用于可访问性的链接是安全的服务器?例如:以http://或https://?否开头,它的非安全服务器。除了ip地址不是静态的之外,它没有什么特别之处,因此当前ip是通过dyndns.org解析的。首先检查可达性*可达性=[可达性可达性WithHostName:@“www.google.com”];有了这一点,你就会知道你的可达性是否得到了正确的实现。谢谢,是的,我已经在这样一个通用的例子中尝试过了,效果很好。仅当我提供服务器和端口时。它没有作出任何回应。