Хостът за достъпност не е достъпен, без значение кой хост използвам

Този случай (NSLog(@"A gateway to the host server is down."); винаги се изпълнява по някаква причина.

Използвам класа на Apple Reachability зад сцената. Опитах се да вмъкна други хостове, но без успех, моля, помогнете.

Благодаря предварително.

Ето кода

@implementation ConnectionManager
@synthesize internetActive, hostActive;

-(id)init {
self = [super init];
if(self) {

}
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(checkNetworkStatus:) name:@"NetworkReachabilityChangedNotification" object:nil];

internetReachable = [Reachability reachabilityForInternetConnection];
[internetReachable startNotifier];

hostReachable = [Reachability reachabilityWithHostName:@"www.google.com"];
[hostReachable startNotifier];



return self;
}

- (void) checkNetworkStatus:(NSNotification *)notice
{
NetworkStatus internetStatus = [internetReachable currentReachabilityStatus];
switch (internetStatus)

{
    case NotReachable:
    {
        NSLog(@"The internet is down.");
        self.internetActive = NO;

        break;

    }
    case ReachableViaWiFi:
    {
        NSLog(@"The internet is working via WIFI.");
        self.internetActive = YES;

        break;

    }
    case ReachableViaWWAN:
    {
        NSLog(@"The internet is working via WWAN.");
        self.internetActive = YES;

        break;

    }
}

NetworkStatus hostStatus = [hostReachable currentReachabilityStatus];
switch (hostStatus)

{
    case NotReachable:
    {
        NSLog(@"A gateway to the host server is down.");
        self.hostActive = NO;

        break;

    }
    case ReachableViaWiFi:
    {
        NSLog(@"A gateway to the host server is working via WIFI.");
        self.hostActive = YES;

        break;

    }
    case ReachableViaWWAN:
    {
        NSLog(@"A gateway to the host server is working via WWAN.");
        self.hostActive = YES;

        break;

    }
}

}

person Blacky    schedule 14.02.2013    source източник
comment
можете ли да се свържете с интернет в други приложения? Имате ли връзка?   -  person Bergasms    schedule 15.02.2013
comment
Променете [Reachability reachabilityWithHostName:@"www.google.com"]; на [Reachability reachabilityWithHostName:@"http://www.google.com"]; и проверете.   -  person iDev    schedule 15.02.2013
comment
www.google.com е правилен. Използването на http:// никога не работи. Намерих някакъв код в приложенията, върху които работя, който имаше http:// и никога не показваше хоста като достъпен. Когато се промени само на www.google.com, хостът стана достъпен, но само докато мрежата прекъсне (компютърът заспива). След това, когато мрежата се появи отново, хостът винаги е изключен. Трябва да рестартирате симулатора, за да работи отново. Мисля, че симулаторът (Xcode 6.2) има вътрешни проблеми и винаги трябва да рестартирам процеса, за да възстановя интернет връзката след събуждане. Винаги грешка 1005 дотогава. Няма проблеми на реално устройство.   -  person ghr    schedule 25.07.2015


Отговори (1)


Тъй като не сте споменали, че internetReachable показва същата грешка, предполагам, че можете да се свържете с интернет и тази част работи добре. За частта hostReachable можете да опитате да я промените като:

промяна

[Reachability reachabilityWithHostName:@"www.google.com"]; 

to

[Reachability reachabilityWithHostName:@"http://www.google.com"];
person iDev    schedule 15.02.2013
comment
Да, прав си, интернет частта работи добре, така или иначе вече опитах с http:// и без пак същото. но все пак ти благодаря. - person Blacky; 15.02.2013
comment
Ами google.com сам? Работеше ли тогава? Току-що проверих по-ранен проект, върху който работих, и използвах само нещо подобно. - person iDev; 15.02.2013
comment
Опитах всички начини, за които се сещам, дори опитах - (BOOL)checkResourceIsReachableAndReturnError:(NSError **)грешка също връща НЕ.. :\ - person Blacky; 15.02.2013