除了JMDNS之外,还有其他针对Bonjour/Zeroconf的Java库吗?
mdnsjava是一个为dnsjava(dnsjava.org)提供mDNS和DNS-SD支持的项目。与许多DNS-SD Java实现不同,mdnsjava支持完整的mDNS DNS RR解析,而不仅仅是服务解析。
请尝试:
-- 相同的 Java DNS-SD API 也可在 Bonjour for Windows、Bonjour for Linux、Solaris、*BSD 等中使用,使得 Java 软件可以跨越广泛的平台利用 Zeroconf 的 DNS 服务发现,而不仅限于 Mac OS X......
在Windows上,dns_sd.jar工作正常,可以从Apple(适用于Windows的SDK)下载。请注意,重新安装Bonjour可能会覆盖包含dns_sd.jar的Program Files / Bonjour目录。Rogue Amoeba的Airfoil就是其中一个例子,但他们声称使用了Apple原始安装程序。
在OSX上,dnssd.jar工作正常,但不再包含在最新的Java版本中,因为Oracle已经接管了责任。然而,该文件仍然存在于磁盘上,因为Apple的1.6 Java仍然在磁盘上。只需找到该文件并将其移动到最新Java的/ externals文件夹中即可。因此,很有趣又愚蠢的是,苹果公司为Windows实现Java DNS SD提供了一个功能良好的SDK,而对于自己的OSX则没有提供任何东西。我预计这只是因为苹果公司过于讨厌Java?
但是,是否有人知道airtunes协议的Java实现;今天的Airport Express和Apple TV使用的最新版本不同于早期Airport Express模型使用的版本?
我知道qTunes,但它无法与最新的Airtunes版本一起使用。(我可以通过Rogue Amoeba的Airfoil扬声器为Mac OS X使其正常工作)
我不会监控这个帖子,但可以通过chj@hdsoundlab.com联系我解决实际问题。
除非你的目标是向其他mDNS兼容应用程序宣布服务可用性或从其他应用程序消费mDNS服务,否则实现自己的基于广播的服务发现可能更有意义。
我发现自己创建实现更容易(在跨平台情况下使用WS-Discovery和Bonjour的经验之后)https://github.com/4ntoine/ServiceDiscovery-java。它具有Java和iOS实现,可用于客户端和服务器端。