2015-06-24 2 views
0

После нескольких часов поиска я попал в тупик. В этом случае все, что я пытаюсь сделать, - это получить все устройства iOS в сети с Bonjour. Я сделал так, как этотПолучение имени хоста удаленного устройства iOS с NSNetService

self.serviceBrowser = [[NSNetServiceBrowser alloc] init]; 
[self.serviceBrowser setDelegate:self]; 
[self.serviceBrowser searchForServicesOfType:@"_apple-mobdev2._tcp." inDomain:@"local."]; 

Это прекрасно работает, хотя то, что я получаю следующее:

local. _apple-mobdev2._tcp. [MAC ADDRESS HERE] 

Я пытался разрешить подключение с помощью синхронизации порта (62078), так как service.port возвращает -1.

for (NSNetService *service in self.services) { 
    NSLog(@"%@", service); 
     NSNetService *newService = [[NSNetService alloc] initWithDomain:service.domain type:service.type name:service.name port:62078]; 
     [newService setDelegate:self]; 
     [newService resolveWithTimeout:30]; 
} 

Это в свою очередь вызывает netServiceWillResolve: без проблем вообще, но это не делает его netServiceDidResolveAddress:

Но ни делает это не в состоянии. netService: didNotResolve: тоже не вызывается, я считаю, что он просто ждет ответа, который будет разрешен.

Для поддержки этой претензии, как только она сделала это для метода и фактически [имя_сервера]; вернул Yanniss-iPhone, но это произошло в совершенно случайное время, когда я оставил приложение Mac на полчаса. Что могло бы вызвать это для запуска? Или кто-нибудь знает о другом способе получения hostName удаленного устройства? Другие ответы не отвечают на мой вопрос, так как я ищу имя узла удаленного устройства, а не устройство Mac.

Относительно этого я обнаружил, что когда вы убиваете и перезапускаете iTunes вместе с iTunes Helper, тот самый журнал, о котором я упоминал ниже, отправляется снова. Именно поэтому я считаю, что правильный журнал был событием, связанным с iTunes. Любая помощь очень ценится!

ответ

1

iTunes поиск bonjour для возможности синхронизации Wi-Fi. Что касается didNotResolve или разрешения задержки, то bonjour-услуги случайным образом отбрасываются где-то между несколькими секундами до 30 минут.

Я на самом деле пытаюсь подключиться к устройствам iOS, но я не мог получить никакого ответа или каких-либо устройств. : \

+0

С iTunes WiFi Sync я действительно смог это сделать! У меня есть имя устройства и IP-адрес. Вместо того, чтобы создавать новую услугу, установите делегат объекта службы цикла для себя и разрешите с тайм-аутом 30. '[Service setDelegate: self]; [service resolveWithTimeout: 30]; 'Я обнаружил, что iOS 9 и iOS 8 имеют разные порты. Вот почему код выше не работал, это было прекрасно на моем iPad iOS 8, но не на моем iOS 9 beta iPhone. – isklikas

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