Добрый день архитектура API
OS X и iOS обеспечивают несколько уровней прикладного программного интерфейса (API) для Добрый день сервисных приложений: классы NSNetService и NSNetServiceBrowser в платформе Основы; CFNetServices, часть платформы CFNetwork в Core Services; Открытие Службы DNS для Java (только OS X); и низкоуровневое Открытие Службы DNS API создается вокруг сокетов BSD. Все три набора API предоставляют средства для публикации, открытия и разрешения сетевых служб. Рисунок 3-1 иллюстрирует структуру уровней API. Как Вы видите, Многоадресная передача, респондент DNS (или другой сервер DNS) находится на самом низком уровне, таким образом, Ваше программное обеспечение не должно взаимодействовать непосредственно с DNS.
NSNetService и NSNetServiceBrowser
NSNetService
и NSNetServiceBrowser
классы, часть платформы Основы в Какао, обеспечивают объектно-ориентированные абстракции для открытия службы и публикации. NSNetService
объекты представляют экземпляры служб Bonjour, или для публикации или для службы, обнаруженной клиентом, и NSNetServiceBrowser
представляет браузер для определенного типа службы. Большинство программистов Какао должно счесть эти классы достаточными для удовлетворения их потребностей. При необходимости в более подробном управлении можно использовать Открытие Службы DNS API из приложения Какао.
NSNetService
и NSNetServiceBrowser
планируются на значение по умолчанию NSRunLoop
объект выполнить публикацию, открытие и разрешение асинхронно. Все результаты, возвращенные NSNetService
и NSNetServiceBrowser
объекты обрабатываются объектами делегата. Эти объекты должны быть связаны с циклом выполнения для функционирования, но это не должно быть по умолчанию.
CFNetServices
CFNetServices API, объявленный в платформе Core Services, обеспечивает Базовые Типы стиля основы и функции для управления открытие службы и службы. CFNetServices определяет три Базовых типов объектов Основы, CFNetService, CFNetServiceBrowser и CFNetServiceMonitor. CFNetService является абстрактным представлением экземпляра службы, или для публикации или для использования. Присоединенные функции предоставляют поддержку для публикации и разрешения служб. CFNetServiceBrowser представляет браузер для определенного типа службы в определенном домене. Необходимо обычно использовать этот API, только если Вы пишете код на уровне Core Foundation в OS X или iOS.
И объекты CFNetService и CFNetServiceBrowser обычно обслуживаются в CFRunLoops. Для получения результатов приложения реализуют функции обратного вызова для обработки событий, таких как новое появление служб или исчезновение, экземпляры, разрешаемые, и ошибочное появление. Если это поведение необходимо, в отличие от NSNetService и NSNetServiceBrowser, типы CFNetServices не требуют цикла выполнения и могут работать синхронно. Однако это - плохая практика для использования синхронных режимов этих функций.
Открытие службы DNS
Открытие Службы DNS API, объявленный в /usr/include/dns_sd.h
, обеспечьте низкоуровневую связь с сокетом BSD для служб Bonjour. Открытие Службы DNS действует как промежуточный уровень между Вашим программным обеспечением и Многоадресной передачей респондент DNS или сервер DNS. Это управляет Многоадресной передачей респондент DNS для Вас, позволяя Вам записать Вашу программу с точки зрения служб и браузеров службы вместо ресурсных записей DNS.
Поскольку Открытие Службы DNS, API является частью Дарвинского проекта открытого исходного кода, необходимо использовать его при записи межплатформенного кода (для платформ вне просто iOS и OS X) или когда необходимо использовать низкоуровневые функции, которые недоступны в высокоуровневом APIs такой как NSNetService
.
Открытием Службы DNS является также API, который должен использоваться при разработке Добрый день сервисных приложений для Windows, Linux или FreeBSD.