2014-01-15 4 views
2

Хотя я знаю, что Bonjour используется, чтобы мы не путали руки с IPAddresses, но мне нужно написать приложение, которое может «вручную добавить новую услугу, указав IPAddress», ,Подключиться к службе Bonjour с IP-адресом

Согласно документации, можно сделать это путем создания соединения по имени (где имя теперь IPAddress) [Ссылка: https://developer.apple.com/library/ios/documentation/Networking/Conceptual/NSNetServiceProgGuide/Articles/ResolvingServices.html#//apple_ref/doc/uid/20001078-SW7]

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{ 

    switch (buttonIndex) { 
     case 0: 
      //Cancel 
      break; 
     case 1: 
      //OK 
      NSLog(@"%@",[[alertView textFieldAtIndex:0] text]); 
      [self searchServiceOfType:SERVICE_TYPE inDomain:@"" withName:[[alertView textFieldAtIndex:0] text]]; 
      break; 
     default: 
      break; 
    } 
    } 


-(void)searchServiceOfType:(NSString *)serviceType inDomain:(NSString *)domain withName:(NSString*)serviceName{ 

    NSNetService *service; 
    service = [[NSNetService alloc] initWithDomain:domain 
               type:serviceType 
               name:serviceName]; 
    [service setDelegate:self]; 
    [service stop]; 
    [service resolveWithTimeout:5.0]; 
} 

служба не разрешает с errordict

Printing description of errorDict: 

{ 
    NSNetServicesErrorCode = "-72004"; 
    NSNetServicesErrorDomain = 10; 
} 

Что мне не хватает?

+0

Bonjour требуется для поиска IP-адресов. Если вы знаете IP-адрес, вам не нужен Bonjour. –

ответ

0

Код ошибки -72004 is NSNetServicesBadArgumentError. Согласно документации

- (id)initWithDomain:(NSString *)domain type:(NSString *)type name:(NSString *)name 

вы должны использовать @"local." (и не @"") для локального домена.

+0

Пробовал, что. На этот раз время соединения. Но сервис очень существует. – user1349663

+0

@ user1349663: Вы проверили с помощью инструмента командной строки «dns-sd», если служба зарегистрирована правильно? Например, 'dns-sd -B_http._tcp local.' –

+0

ОК, сделал это. Он перечисляет мою службу с «местным». домен. Те же учетные данные, что я использовал для поиска службы. – user1349663

Смежные вопросы