ios - NSNetService 是否仅适用于 .local 域?

标签 ios macos bonjour

我有一个代码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/

相关文章:

ios - AFNetworking 数组在 block 内返回 JSON,但不在 block 外

objective-c - NSURL 失败的 NSFileHandle

iphone - 如何使用 Bonjour 跨子网宣传服务?

objective-c - NSScrollView 无法滚动

python - 为 Finder 创建 Bonjour 服务

c++ - 在 Visual C++ Windows 窗体应用程序中实现 Bonjour SDK

objective-c - 使用 UIDocument saveToUrl 在 NSURL 上抛出 NSInvalidArgumentException

ios - 不同时间数据库

iphone - UITableViewCell 中的 UITextView 平滑自动调整大小显示和隐藏 iPad 上的键盘,但适用于 iPhone

java - Oracle SQL Developer 在尝试查看表时没有响应(或建议使用 Oracle Mac 客户端)