2013-08-11 4 views
2

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

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

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

ответ

4

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

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

Поскольку служба обнаружения на основе DNS является частью Zero-configuration networking, которая имеет множество реализаций, дополнительные списки протоколов можно найти на конкретных сайтах поставщиков. Например, вот список Apple's Bonjour service types.

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

Смежные вопросы