Как регистрация сервиса работает с NsdManager?

Я только начал работать с Multicast DNS, используя класс NSDManager для Android. Я наткнулся на пример NsdChat по этой ссылке https://android.googlesource.com/platform/development/+/master/samples/training/NsdChat/src/com/example/android/nsdchat/NsdHelper.java. В этом фрагменте кода регистрация службы довольно проста, но я хочу понять, как работает ее основной механизм, и я нигде не могу найти информацию.

public void registerService(int port) {
    tearDown();  // Cancel any previous registration request
    initializeRegistrationListener();
    NsdServiceInfo serviceInfo  = new NsdServiceInfo();
    serviceInfo.setPort(port);
    serviceInfo.setServiceName(mServiceName);
    serviceInfo.setServiceType(SERVICE_TYPE);
    mNsdManager.registerService(
    serviceInfo, NsdManager.PROTOCOL_DNS_SD, mRegistrationListener);
}

Если кто-то имеет опыт с этим и может объяснить это мне, это очень ценится. Это основные вопросы, о которых я могу думать прямо сейчас.

1) Когда вызывается registerService(), с кем приложение регистрирует этот сервис?

2) Как проходит процесс регистрации? Сохраняется ли такая информация, как имя и порт, где-то в таблице поиска, как DNS?

3) Если у кого-то есть диаграмма, объясняющая, как это работает, это было бы здорово.

Заранее спасибо.

0 ответов

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