2010-03-14 105 views
1

Bonjour提供了浏览特定类型服务的“DNSSD.browse(serviceType,callBackObject)”方法。如果找到给定类型的服务,Bonjour将调用“callBackObject.serviceFound”。如果服务丢失,Bonjour会调用“callBackObject.serviceLost”。Can Bonjour可以使用特定名称浏览服务吗?

我一直认为“DNSSD.browse”是一种监视特定服务的方法。如果发现(可用)或丢失(不可用)服务,Bonjour监视特定服务并调用必要的方法。

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

但在我的应用程序中,我想浏览一个特定的服务。什么是最好的方式来做到这一点?我有两个潜在的解决方案:

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

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

回答

1

你的第一个选择让我成为最好的选择。服务名称可以添加 服务实例名称,以便您的服务可以使用 名称(但带有适当的下划线), “server1._http._tcp”。使用该服务名称时,服务应当在浏览“_http._tcp”时显示 ,如果需要更具体的查询,则显示“server1._http._tcp” 。 DNSSD.browse应该有 完全支持这种类型的服务名称。

相关问题