2

我有一个代码CocoaHTTPServer,它使用 Bonjour 发布服务。并且 tt 为此使用 NSNetService。

如果您定义域“.local”,它可以正常工作(在 OS X 和 iOS 上)。但是,如果您定义其他任何内容,它不会发布服务,也不会调用未发布服务器的委托。

我对此进行了调查并发现了以下信息。

来自NSNetService 类的文档:

此类和 NSNetServiceBrowser 类使用多播 DNS 将有关网络服务的信息传送到应用程序和从应用程序传出。

来自Bonjour 域名的文档

在 Bonjour 系统上,本地。用于指示应在本地 IP 网络上使用 IP 多播查询查找的名称。

我是否正确理解 NSNetService 类只能与 .local 域一起使用,而不能与广域 bonjour(不同的域)一起使用?

PS 如果我没有遗漏任何内容,我打算联系 Apple,因为只有一个正确值而其他所有值都不正确的参数很奇怪(并且没有通过任何错误报告)

4

1 回答 1

2

NSNetService确实适用于 . 以外的域local.

在发布您的服务之前,请使用NSNetServiceBrowser- (void)searchForRegistrationDomains找到合适的注册域。

Apple 的NSNetServices 和 CFNetServices 编程指南包含一个关于此的部分,包括示例代码:Browsing for Domains

于 2014-06-19T11:04:41.520 回答