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

标签 java networking bonjour zeroconf

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

我一直认为“DNSSSD.browse”是一种监视特定服务的方法。 Bonjour 监控特定服务并在服务找到(可用)或丢失(不可用)时调用必要的方法。

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

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

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

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

最佳答案

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

关于java - Bonjour 可以浏览具有特定名称的服务吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2442254/

相关文章:

java - Flash 中的 HTTP POST - 客户端在响应前关闭 TCP 连接

iPhone:Bonjour NSNetService IP 地址和端口

c# - 需要 Mono Zeroconf 的样本

networking - 如何使用静默安装从 rhq-server 安装 rhq-agent?

c - 如何确定原始数据包中http header 的起始字节?

java - Maven 依赖项失败并出现 501 错误

java - 如何正确地将对象从scala转换为java?

macos - 错误:getOptRdata-未知选项4

java - 在java中使用LinkedList,当同时需要List和DeQueue方法时

java - 避免Hessian登录catalina.out