我有一个使用Bonjour发布服务的代码CocoaHTTPServer。并且tt使用NSNetService。
如果您定义域“.local”,它在OS X和iOS上都可以正常工作。但是,如果您定义其他任何内容,它不会发布服务,也不会调用它没有发布服务器的委托。
我对此进行了调查并发现了以下信息。
来自NSNetService class的文档:
的文档此类和NSNetServiceBrowser类使用多播DNS 传达有关网络服务的信息 应用
在Bonjour系统上,本地。用于表示应该是的名称 在本地IP网络上使用IP多播查询查找。
我是否正确理解NSNetService类只能与.local域一起使用,并且无法与广域bonjour(不同的域)一起使用?
P.S。如果我没有遗漏任何东西,我打算联系Apple,因为只有一个正确的值和所有其他错误的参数是奇怪的(并且没有通过任何错误报告)
答案 0 :(得分:2)
NSNetService
适用于local.
以外的域名。
在发布服务之前,请使用NSNetServiceBrowser和- (void)searchForRegistrationDomains
查找合适的注册域名。
Apple的 NSNetServices和CFNetServices编程指南包含有关此内容的部分,包括示例代码:Browsing for Domains。