NSNetServiceBrowser
NSNetServiceBrowser класс определяет интерфейс для нахождения, что опубликованные службы на сеть с помощью многоадресно передают DNS. Экземпляр NSNetServiceBrowser известен как браузер сетевой службы.
Службы могут колебаться от стандартных служб, таких как HTTP и FTP, к службам поддержки, определенным другими приложениями. Можно использовать браузер сетевой службы в коде, чтобы получить список доступных доменов и затем получить NSNetService объект для каждой обнаруженной службы. Каждый браузер сетевой службы выполняет один поиск за один раз, поэтому если Вы хотите выполнить многократные одновременные поиски, используйте многократные браузеры сетевой службы.
Браузер сетевой службы выполняет все поиски асинхронно с помощью текущего цикла выполнения для выполнения поиска в фоновом режиме. Результаты поиска возвращаются через связанный объект делегата, который должно обеспечить Ваше клиентское приложение. При поиске доходов в фоновом режиме, пока объект не получает a stop сообщение.
Использовать NSNetServiceBrowser возразите, чтобы искать службы, выделить его, инициализировать его и присвоить делегата. (При необходимости можно также использовать scheduleInRunLoop:forMode: и removeFromRunLoop:forMode: методы для выполнения поисков на цикле выполнения кроме текущего.), Как только Ваш объект готов, Вы начинаете путем сбора списка доступных доменов с помощью любого searchForRegistrationDomains или searchForBrowsableDomains методы. Из списка возвращенных доменов можно выбрать один и использовать searchForServicesOfType:inDomain: метод для поиска служб в том домене.
NSNetServiceBrowser класс обеспечивает два способа искать домены. В большинстве случаев Ваш клиент должен использовать searchForRegistrationDomains метод для поиска только локальные домены, к которым хост-машина имеет регистрационные полномочия. Это - предпочтительный метод для доступа к доменам, поскольку это гарантирует, что хост-машина может соединиться со службами в возвращенных доменах. Доступ к доменам вне этого списка может быть более ограничен.
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.2 и позже.
-
Инициализирует выделенный
NSNetServiceBrowserобъект.Объявление
Swift
init()Objective C
- (instancetype)initВозвращаемое значение
Инициализированный
NSNetServiceBrowserобъект.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.2 и позже.
-
Объект делегата для этого экземпляра.
Объявление
Swift
unowned(unsafe) var delegate: NSNetServiceBrowserDelegate?Objective C
@property(assign) id< NSNetServiceBrowserDelegate > delegateОператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.2 и позже.
-
Инициирует поиск доменов, видимых к узлу. Этот метод сразу возвращается.
Объявление
Swift
func searchForBrowsableDomains()Objective C
- (void)searchForBrowsableDomainsОбсуждение
Делегат получает a
netServiceBrowser:didFindDomain:moreComing:сообщение для каждого домена обнаружено.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.4 и позже.
См. также
-
Инициирует поиск доменов, в которых узел может зарегистрировать службы.
Объявление
Swift
func searchForRegistrationDomains()Objective C
- (void)searchForRegistrationDomainsОбсуждение
Этот метод сразу возвращается, отправляя a
netServiceBrowserWillSearch:обменивайтесь сообщениями делегату, если сеть была готова инициировать поиск. Делегат получает последующееnetServiceBrowser:didFindDomain:moreComing:сообщение для каждого домена обнаружено.Большинство клиентов браузера сетевой службы не должно использовать этот метод — достаточно опубликовать службу с пустой строкой, регистрирующей его в любых доступных регистрационных доменах автоматически.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.2 и позже.
См. также
– searchForBrowsableDomains– searchForServicesOfType:inDomain:netServiceBrowser:didFindDomain:moreComing:(NSNetServerBrowserDelegate)netServiceBrowserWillSearch:(NSNetServerBrowserDelegate) -
searchForAllDomains - searchForAllDomains(OS X v10.4)Инициирует поиск всех доменов, которые видимы к узлу.
Оператор осуждения
Этот метод был осужден. Использовать
searchForBrowsableDomainsилиsearchForRegistrationDomainsвместо этого.Объявление
Objective C
- (void)searchForAllDomainsОбсуждение
Этот метод сразу возвращается, отправляя a
netServiceBrowserWillSearch:обменивайтесь сообщениями делегату, если сеть была готова инициировать поиск. Делегат получает последующееnetServiceBrowser:didFindDomain:moreComing:сообщение для каждого домена обнаружено.Этот метод может найти домены, в которых localhost не имеет регистрационных полномочий.
Оператор импорта
Objective C
@import Foundation;Доступность
Доступный в OS X v10.2 и позже.
Осуждаемый в OS X v10.4.
См. также
– searchForRegistrationDomainsnetServiceBrowser:didFindDomain:moreComing:(NSNetServiceBrowserDelegate) -
Запускает поиск служб определенного типа в определенном домене.
Объявление
Параметры
serviceTypeТип службы для поиска.
domainNameДоменное имя, в котором можно выполнить поиск.
Обсуждение
Этот метод сразу возвращается, отправляя a
netServiceBrowserWillSearch:обменивайтесь сообщениями делегату, если сеть была готова инициировать поиск. Делегат получает последующийnetServiceBrowser:didFindService:moreComing:сообщения для каждой службы обнаружены.serviceTypeпараметр должен содержать и текстовый слой службы и информацию о транспортном уровне. Чтобы гарантировать, что mDNS респондент ищет службы, а не узлы, удостоверяются, что снабдили префиксом и имя службы и имя транспортного уровня с символом подчеркивания (“_”). Например, для поиска службы HTTP на TCP Вы использовали бы строку типа “_http._tcp.“. Обратите внимание на то, что символ точки в конце требуется.domainNameпараметром может быть явное доменное имя, универсальный локальный домен@"local."(отметьте запаздывание периода, указывающего абсолютное имя), или пустая строка (@""), который указывает регистрационные домены по умолчанию. Обычно, Вы передаете в пустой строке. Обратите внимание на то, что приемлемо использовать пустую строку дляdomainNameпараметр при публикации или просмотре службы, но не полагается на это для разрешения.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.2 и позже.
См. также
netServiceBrowser:didFindService:moreComing:(NSNetServiceBrowserDelegate)netServiceBrowserWillSearch:(NSNetServiceBrowserDelegate) -
Останавливает в настоящее время запускающий поиск или разрешение.
Объявление
Swift
func stop()Objective C
- (void)stopОбсуждение
Этот метод отправляет a
netServiceBrowserDidStopSearch:передайте делегату и причинам браузер для отбрасывания любых незаконченных результатов поиска.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.2 и позже.
См. также
netServiceBrowserDidStopSearch:(NSNetServiceBrowserDelegate)
-
Добавляет получатель к указанному циклу выполнения.
Объявление
Параметры
runLoopВыполненный цикл, в котором можно запланировать получатель.
runLoopModeВыполненный режим цикла, в котором можно выполнить эту работу, такой как
NSDefaultRunLoopMode. ПосмотритеRun Loop ModesразделNSRunLoopкласс для других значений режима цикла выполнения.Обсуждение
Можно использовать этот метод в сочетании с
removeFromRunLoop:forMode:передать получатель циклу выполнения кроме по умолчанию. Вы не должны пытаться выполнить получатель на многократных циклах выполнения.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.2 и позже.
См. также
-
Удаляет получатель из указанного цикла выполнения.
Объявление
Параметры
runLoopВыполненный цикл, из которого можно удалить получатель.
runLoopModeВыполненный режим цикла, в котором можно выполнить эту работу, такой как
NSDefaultRunLoopMode. ПосмотритеRun Loop ModesразделNSRunLoopкласс для других значений режима цикла выполнения.Обсуждение
Можно использовать этот метод в сочетании с
scheduleInRunLoop:forMode:передать получатель циклу выполнения кроме по умолчанию. Несмотря на то, что возможно удалитьNSNetServiceвозразите полностью от любого цикла выполнения и затем делайте попытку действий с ним, Вы не должны делать этого.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.2 и позже.
См. также
