我有一个代码CocoaHTTPServer它使用 Bonjour 发布服务。 tt 为此使用 NSNetService。
如果您定义域“.local”,它可以正常工作(在 OS X 和 iOS 上)。但是,如果您定义其他任何内容,它不会发布服务,也不会调用未发布服务器的委托(delegate)。
我对此进行了调查并发现了以下信息。
来自NSNetService class的文档:
This class and the NSNetServiceBrowser class use multicast DNS to convey information about network services to and from your application.
来自Bonjour domain names的文档
On Bonjour systems, local. is used to indicate a name that should be looked up using an IP multicast query on the local IP network.
我是否正确理解 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/