2009-10-19 2 views

ответ

18

Старая нить, но есть способ найти местные услуги Discovering all advertised Bonjour service types. Вам нужно будет сделать некоторые манипуляции с результатами, чтобы получить типы в правильном формате. Это работает на Mac & iPhone, хотя никаких служб не обнаружено, если у меня нет Wi-Fi-соединения на iPhone.

NSNetServiceBrowser* domainBrowser = [[NSNetServiceBrowser alloc] init]; 
    domainBrowser.delegate = self; 
    [domainBrowser searchForServicesOfType:@"_services._dns-sd._udp." 
           inDomain:@"local."]; 
4

Насколько я знаю, нет функции, которая будет искать все доступные сервисы. Причина, вероятно, связана с тем, что приложение, публикующее службу, может определить свой собственный тип сервиса.

Если вы ищете услуги общих типов (HTTP, принтер и т. Д.), Вы можете легко создать цикл для вызова -[instanceOfNSNetServiceBrowser searchForServicesOfType:inDomain:] со всеми типами, которые вы хотите, во всех доменах, которые вы ранее обнаружили.

developer docs guide section on setting up a NSNetService также может быть полезен.

+0

Да, кажется, что это единственный способ – Farcaller