2009-10-19 11 views

risposta

18

Vecchio thread ma c'è un modo per trovare i servizi locali Discovering all advertised Bonjour service types. Sarà necessario manipolare i risultati per ottenere i tipi nel formato corretto. Funziona su Mac & iPhone anche se non vengono rilevati servizi se non ho una connessione Wifi su iPhone.

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

Per quanto ne so, non esiste una funzione che cercherà tutti i servizi disponibili. Il motivo è probabilmente dovuto al fatto che un'applicazione che pubblica un servizio può definire il proprio tipo di servizio.

Se si cercano solo servizi di tipi comuni (HTTP, stampante, ecc.) È possibile creare facilmente un ciclo per chiamare -[instanceOfNSNetServiceBrowser searchForServicesOfType:inDomain:] con tutti i tipi desiderati, in tutti i domini scoperti in precedenza.

Il developer docs guide section on setting up a NSNetService può anche essere di aiuto.

+0

Sì, sembra che sia l'unico modo – Farcaller

Problemi correlati