为Finder创建Bonjour服务

4 投票
2 回答
1800 浏览
提问于 2025-04-16 00:12

我最近在玩Bonjour这个东西,为了做原型,我使用了Pybonjour这个库,最开始的测试效果还不错。不过,当我想创建一个在Finder中可见的服务时,就遇到了很大的困难。我参考了这个页面,上面列出了可以在Finder中浏览的服务标识符。

我尝试了 _afpovertcp._tcp,结果它立刻出现在Finder里。但是另外两个比较有趣的服务(_webdav._tcp, _ftp._tcp)却没有显示出来。我是不是漏掉了什么必要的组件,还是说这是配置错误(比如说默认启用了某个内置防火墙)?我是在使用Snow Leopard 10.6.3进行测试。

我还在一台Ubuntu机器上尝试了服务器部分,结果也是一样。此外,我注意到Terminal.app可以发现FTP服务器(在Ubuntu和OSX服务器上都可以)。

更新:SMB(_smp._tcp)可以正常工作,和AFP的表现一样。

我想到了一些可能性:

  • Finder需要的不仅仅是服务字符串
  • FTP和WebDAV服务的发现默认是关闭的,需要以某种方式启用
  • 在Snow Leopard中移除了FTP和WebDAV的发现功能(希望不是这样!!)

2 个回答

0

与其使用Finder,不如试试Bonjour浏览器,链接在这里:http://www.tildesoft.com/Programs.html。这个工具可以帮助你找到所有使用Bonjour的服务。还有一个命令行工具叫做dns-sd,它可以用来模拟发布Bonjour能发现的服务。

比如,输入这个命令:

dns-sd -R "测试打印服务" _printer._tcp "" 666

这个命令就模拟了一个打印服务,Bonjour可以找到它。你可以把_service类型的部分换成其他服务类型来模拟不同的服务。

我正在开发一个使用Bonjour服务的iPad应用,所以我也在学习这些东西。

希望这些信息对你有帮助。

1

我之前又测试了一下,发现一些Bonjour服务在Snow Leopard和Lion系统中似乎不再可用了。我没有找到相关的文档来说明这个问题,但我把我的结果分享出来,希望能帮助到那些也在寻找相同信息的人。

撰写回答