如何使用JmDNS解析Bonjour域名

Jak*_*ake 8 java android bonjour hostname jmdns

作为我正在开发的应用程序的一部分,我需要能够解析与Bonjour 主机名对应的正确IP .

例如,我已经给出jack.local并需要将其解析为192.168.1.141与jack相关联的IP地址.

我一直在梳理JmDNS API,我发现的最多的方法是,如果知道类型和名称,则允许解析服务.但是,我根本找不到任何可以解析主机名的内容.

我错过了什么吗?是否真的无法使用JmDNS解析主机名?

Rap*_*lee -1

使用 jmdns,您可以监听服务。使用以下功能进行订阅

jmdns = JmDNS.create();
jmdns.addServiceListener(String type, ServiceListener listener);
Run Code Online (Sandbox Code Playgroud)

一旦 jmdns 找到服务,就会ServiceListener收到通知。监听器具有三个公共功能:

serviceResolved(ServiceEvent event)
serviceRemoved(ServiceEvent event)
serviceAdded(ServiceEvent event)
Run Code Online (Sandbox Code Playgroud)

与每个人一起,你会得到ServiceEvent. 现在调用event.getInfo().getHostAddresses()以获取主机所有地址的数组。

如果您想解决服务问题,您必须致电

jmdns.requestServiceInfo(event.getType(), event.getName(), 1);
Run Code Online (Sandbox Code Playgroud)

在serviceAdded方法中。

看一下:快速教程