2

我刚刚开始使用适用于 Android 的 NSDManager 类来处理多播 DNS。我从这个链接https://android.googlesource.com/platform/development/+/master/samples/training/NsdChat/src/com/example/android/nsdchat/NsdHelper.java找到了 NsdChat 示例。在这段代码中,注册服务似乎很简单,但我想了解它的底层工作机制,我在任何地方都找不到信息。

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)如果有人有一个图表来解释它是如何工作的,那就太棒了。

先感谢您。

4

0 回答 0