我真的受到编程语言的限制吗?我可以想象,要使用 Bonjour,我需要有任何语言都无法使用的特殊库。所以,那么我需要使用那些具有相应库的语言。作为第二个选项,我可以想象,Bonjour 提供了一个几乎可以被任何语言使用的界面(例如,Bonjour 将信息保存在特殊文件或环境变量中,而我可以使用大多数语言来访问这些信息) .
PS我对PHP特别感兴趣。
我真的受到编程语言的限制吗?我可以想象,要使用 Bonjour,我需要有任何语言都无法使用的特殊库。所以,那么我需要使用那些具有相应库的语言。作为第二个选项,我可以想象,Bonjour 提供了一个几乎可以被任何语言使用的界面(例如,Bonjour 将信息保存在特殊文件或环境变量中,而我可以使用大多数语言来访问这些信息) .
PS我对PHP特别感兴趣。
很多语言都有 ZeroConf 绑定,包括 Java 和 .Net,这里有一个在 Python 中使用它的示例。它使用D-Bus与守护进程对话。这个D-Bus绑定列表包括 PHP、Python、Perl、Java、.Net、C++、Haskell、OCaml、Squeak 等等。甚至还有一个 Pascal 绑定!
所以不,您不受编程语言的限制。
Apple 的Bonjour for Windows SDK 作为 COM 组件安装,可以通过COM 函数从 PHP 调用。
SDK 安装了多种语言的示例代码。虽然 PHP 不是其中之一,但这些示例应该是可读的。
关于 API 的另一个信息来源是 Mac OS X 参考库中的Bonjour 文档。
搜索“ZeroConf”(实际协议的名称)而不是“Bonjour”(Apple 对该协议的具体实现)会更好。
Roman,由于您对 PHP 特别感兴趣,您可以查看 php5-avahi 扩展: http ://code.google.com/p/php5-avahi/
我还没有使用它(刚刚开始为自己研究同样的问题),但它看起来像你正在寻找的东西:一种编写 Bonjour(又名 Avahi、Zeroconf、Rendevous、mDNS)消息传递/广播/消费的方法在 PHP 中。
可悲的是,它看起来像是一个相当停滞的项目(4 次提交,全部在 2009 年)。但是,希望它可以帮助您入门。
希望有帮助,本杰明