Доступные типы услуг в WifiP2pDnsSdServiceInfo.newInstance

Я программирую приложение для Android, которое использует Wifi Direct. Я пытаюсь запустить свой сервис, и я звоню WifiP2pDnsSdServiceInfo.newInstance. Однако я искал различные типы сервисов, которые мог бы использовать, и до сих пор я нашел только "_presence._tcp".

Я понимаю, что должен каким-то образом найти тип службы, который "имеет смысл" с тем, что пытается выполнить мое приложение. Могу ли я просто "изобрести" это? Есть ли доступный список протоколов?

Большое спасибо!

1 ответ

Документация Android содержит некоторую информацию для начала в руководстве Использование обнаружения сетевых служб. В соответствии с этим тип сервиса определяет, какой протокол и транспортный уровень использует приложение. Синтаксис _<protocol>._<transportlayer>, Таким образом, вы должны использовать только существующие транспорты во второй части. Наиболее часто используемые tcp а также udp, конечно.

Что касается первой части, то здесь есть куча протоколов прикладного уровня. Например, presence протокол обмена сообщениями от xmpp.org, и ipp это служба печати. Более или менее полный список зарегистрированных протоколов вы можете найти на сайте dns-sd.org. Также вы можете взглянуть на реестр имен сервисов на iana.org.

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

Я не думаю, что существует единый исчерпывающий список протоколов, используемых во всем мире. Тем не менее, я полагаю, что вы могли бы придумать свое собственное имя с разумно выделяющейся базовой структурой (сокращениями и / или семантикой) - просто выполните поиск в Интернете и убедитесь, что ваше имя не отображается по отношению к Zeroconf и DNS-SD.

Другие вопросы по тегам