objective-c - IP 更改的 NSNetService 回调?

标签 objective-c bonjour

跟踪可能更改的网络服务的 IP 地址的最佳方法是什么? (以en0、en1来回切换为例)

调用 startMonitoring 后,当 TXT 记录数据更改时,您会收到回调,但我发现没有明显的方法可以在 IP 更改时收到通知。

目前,我只是在连接失败时重新浏览并检查 IP 是否已更改。我希望这不是最干净的方法。有什么想法吗?

最佳答案

可能存在对 NSNetService 性质的轻微误解 - 这会导致您感到困惑。

你应该保留对 NSNetService 的引用,当你想连接到它时,你告诉它:

- (void)resolveWithTimeout:(NSTimeInterval)timeout

该调用会立即返回,并在找到该服务的地址时通知您的 NSNetServiceDelegate。理想情况下,您在这些限制内工作。

如果您真的只是想主动跟踪 IP 地址的变化,那么维护每个 NSNetService 的实例,在每个实例上调用 startMonitoring(),并维护您的委托(delegate)收到的每个 netServiceDidResolveAddress() 回调的记录。

关于objective-c - IP 更改的 NSNetService 回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6511581/

相关文章:

ios - 如何在 iOS 应用程序上同步 UITableView 滚动和 CoraData 获取?

ios - 创建一个私有(private) pod ,没有任何存储库的 source 属性

objective-c - CoreFoundation 和一般指针

iphone - 在网络上找不到 iOS/Mac Bonjour 服务

ios - baseURL无法用于UIWebView吗?

ios - 一些 Restkit 方法不可用

delphi - 可以用Delphi XE5创建zeroconf服务吗?

ios - 了解 bonjour 服务的状态

ios - 是否可以通过某种方式将 IPV6 地址转换为 IPV4 地址,或者始终检索 IPV4 地址?

iphone - iOS 蓝牙数据传输、Gamekit 或 Bonjour