我刚刚开始使用适用于 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)如果有人有一个图表来解释它是如何工作的,那就太棒了。
先感谢您。