我有一个代码CocoaHTTPServer,它使用Bonjour发布服务。 tt为此使用NSNetService。
如果您定义域“.local”,则可以正常工作(在OS X和iOS上均可)。但是,如果您定义了其他任何内容,则它不会发布服务,也不会调用未发布服务器的委托。
我对此进行了调查,发现了以下信息。
来自NSNetService class的文档:
此类和NSNetServiceBrowser类别使用多播DNS来
与您之间传递有关网络服务的信息
应用。
Bonjour domain names的文档
在Bonjour系统上,本地。用于表示应为
使用本地IP网络上的IP多播查询查找。
我是否正确理解NSNetService类只能与.local域一起使用,而不能与bonjour(不同域)一起使用?
附言如果我什么都不缺,我打算与Apple联系,因为只有一个正确的值而所有其他不正确的参数(并且没有通过任何错误报告)很奇怪。
最佳答案
NSNetService
适用于local.
以外的其他域。
在发布服务之前,请使用NSNetServiceBrowser和- (void)searchForRegistrationDomains
查找合适的注册域。
Apple的 NSNetServices和CFNetServices编程指南包含与此有关的部分,其中包括示例代码:Browsing for Domains。
关于ios - NSNetService是否仅适用于.local域?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15011823/