avahi-browse
是否有类似于 GNU/Linux 的 Windows 免费(=自由)软件avahi-discover
(可以发现本地网络上的 avahi/bonjour 服务并列出它们)?
由于我在 Windows 和 Ubuntu 12.04 上看到(发现)彼此的 samba 服务时遇到了问题(类似于Windows 7 未发现 Ubuntu Samba 服务器,无法浏览 Windows 7 x64 计算机上的共享,https://askubuntu.com/questions/130522/windows-7-and-ubuntu-12-04-cant-connect-anymore), 我最好不要尝试解决这些问题,而是最好使用更熟悉的协议来在 LAN 上创建和发现服务(ssh、sftp、ftp),例如 avahi/bonjour。
答案1
我以前用过域名解析java 库在 Windows 上实现服务发现。
如果您想用 Java 编写使用基于 mDNS 的零配置服务发现的客户端/服务器软件,那么我建议您使用 JmDNS,但是该项目目前似乎并不活跃。
如果您只是需要发现网络上的服务,几年前我编写了一个使用 JmDNS 的简单 Java 程序。您可以从我的 Dropbox 下载 jar(所有依赖项都捆绑在里面):https://dl.dropboxusercontent.com/u/16311400/BonjourServiceDisco.jar
要运行此程序,您需要安装 Java 和 Windows 命令 shell:
java -jar BonjourServiceDisoc.jar
不幸的是,我弄丢了源代码,但是从记忆中它只是对 JmDNS 进行一两次 API 调用,以多播服务发现请求,然后实现侦听器以将结果输出到标准输出。JmDNS 可能包含一个执行非常类似操作的测试程序。
答案2
有一个 Mono 的 zeroconf 实现,包括 Windows 二进制文件:http://www.mono-project.com/Mono.Zeroconf
Mono.Zeroconf Windows 二进制文件依赖于安装在您系统上的 Apple Bonjour 服务(这是 Apple 对 mDNS 的实现)。如果您没有安装 Bonjour,您可以直接安装苹果 iTunes因为它包含了 Bonjour。
我发布了两个单独的答案,因为 JmDNS 和 Mono.Zeroconf 解决方案在实现语言、兼容性、错误和功能等许多方面都有所不同,因此您可能更喜欢使用其中一个。