Bonjour可以浏览具有特定名称的服务吗?

时间:2010-03-14 13:22:06

标签: java networking bonjour zeroconf

Bonjour提供“DNSSD.browse(serviceType,callBackObject)”方法,用于浏览特定类型的服务。如果找到给定类型的服务,Bonjour调用“callBackObject.serviceFound”。如果服务丢失,Bonjour会调用“callBackObject.serviceLost”。

我总是将“DNSSD.browse”视为监控特定服务的方法。 Bonjour监控特定服务,如果找到(可用)或丢失(不可用)服务,则调用必要的方法。

但是我意识到“DNSSD.browse”接收(作为参数)一种服务(例如“ http .tcp”),并且可以有这种类型的几种服务。因此,如果发现或丢失了指定类型的任何服务,它可能会调用“serviceFound”和“serviceLost”。

但是在我的应用程序中,我想浏览一个特定的服务。最好的方法是什么?我有两个可能的解决方案:

  1. 当我注册服务时,我给它一个独特的类型。例如:“server1。 http .tcp”。

  2. 我使用唯一名称(不是类型)注册服务,并要求Bonjour浏览具有特定名称的服务。但我不确定卓悦是否提供这种可能性。可以浏览具有特定名称的服务吗?

1 个答案:

答案 0 :(得分:1)

你的第一个选择让我觉得最好。服务名称可以有 添加了服务实例名称,以便您的服务可以拥有 你建议的名字(但有适当的下划线), “server1._http._tcp”。使用该服务名称,服务应该 浏览“_http._tcp”和“server1._http._tcp”时显示 如果你想要一个更具体的查询。 DNSSD.browse应该有 完全支持此类服务名称。