NSNetService仅适用于.local域吗?

时间:2013-02-21 20:43:02

标签: ios macos bonjour

我有一个使用Bonjour发布服务的代码CocoaHTTPServer。并且tt使用NSNetService。

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

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

来自NSNetService class的文档:

  

此类和NSNetServiceBrowser类使用多播DNS   传达有关网络服务的信息   应用

来自Bonjour domain names

的文档
  

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

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

P.S。如果我没有遗漏任何东西,我打算联系Apple,因为只有一个正确的值和所有其他错误的参数是奇怪的(并且没有通过任何错误报告)

1 个答案:

答案 0 :(得分:2)

NSNetService适用于local.以外的域名。

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

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