Введение в открытие службы DNS

Этот документ описывает, как использовать Открытие Службы DNS API в Вашей программе.

Открытие Службы DNS API помогает Вам выполнить три основных задачи:

В поддержку этих основных задач этот API может непосредственно помочь Вам в выполнении двух вспомогательных задач:

Открытие Службы DNS API является частью Добрый день, реализацией Apple нулевой конфигурации, объединяющей (ZEROCONF) в сеть. Для обзора того, как Добрый день работает, считайте Добрый день Обзор до использования Открытия Службы DNS.

Кто должен считать этот документ?

Этот документ предназначается для разработчиков, хотящих использовать Добрый день в их приложениях. Существует много причин использовать Открытие Службы DNS API по Сетевым службам APIs (NSNetServices и CFNetServices):

Если ни одна из тех функций не необходима для Вашей программы, она настоятельно рекомендована это, Вы смотрите на NSNetService и CFNetService сначала.

Организация этого документа

Этот документ содержит следующие статьи:

Перед запуском

Следующие несколько абзацев описывают некоторые вещи, которые необходимо знать об этом API прежде, чем попробовать выполнить любую из задач.

Большинство функций в этом API не возвращает все свои данные с помощью их функционального возврата или блока параметра. Вместо этого они требуют, чтобы Вы обеспечили функцию обратного вызова, которая может обработать данные, отправленные асинхронно.

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

Некоторые функции возвращают коды ошибки обычным способом, но многие не делают. В этих случаях любой код ошибки и флаги состояния отправляются в Вашу функцию обратного вызова как часть асинхронного ответа, вместе с — или вместо — любые возвращенные данные.

Большинство функций в этом API использует единый набор параметров для описания служб. Необходимо будет предоставить некоторых или все эти параметры, в зависимости от цели вызова. Во многих случаях Вы обеспечите некоторые параметры, такие как домен и тип службы, и Ваша функция обратного вызова получит данные, соответствующие другим параметрам, таким как имя службы службы соответствия.

Вот является список общих параметров, требуемых Открытием Службы DNS API:

Требования

Открытие Службы DNS API требует служб mDNSResponder демон. OS X (версия 10.2 и позже) и iOS включает mDNSResponder демон как часть операционной системы. Apple также обеспечивает исходный код для mDNSResponder демон на сайте Apple С открытым исходным кодом. Этот API также доступен в Добрый день для Windows и (если mDNSResponder установлен) в Linux, Солярисе и операционных системах FreeBSD.

Ограничения

Открытие Службы DNS API не выполняет установку доступа к сети для служб. Точно так же Открытие Службы DNS API не обеспечивает сетевое соединение от приложения до службы. Это позволяет приложениям просматривать для служб или просить их по имени, и обеспечивает IP-адрес, порт, и т.д. Можно использовать сокеты BSD для соединения со службой по сети.

Для получения дополнительной информации

Для получения дополнительной информации о Добрый день, включая ссылки к стандартам, спецификации и ресурсы, видят http://developer .apple.com/networking/bonjour и читают Добрый день Обзор.

Документация относительно основанного на Java Открытия Службы DNS API доступна в Ссылке Java Открытия Службы DNS.

Для получения информации о динамическом обновлении и совместно использованных секретах, посмотрите http://www .ietf.org/rfc/rfc2136.txt и http://www .ietf.org/rfc/rfc2845.txt, соответственно.

Для получения информации Преобразование сетевых адресов (NAT), посмотрите http://www .ietf.org/rfc/rfc3022.txt, и для получения информации об автоматическом отображении порта NAT, посмотрите http://files .dns-sd.org/draft-nat-port-mapping.txt.

Для примера кода, загрузка mDNSResponder исходный код на сайте Apple С открытым исходным кодом.