跟踪可能发生变化的网络服务的IP地址的最佳方法是什么? (例如,在en0,en1之间来回切换)
调用startMonitoring后,当TXT记录数据发生变化时会收到回调,但是如果IP发生变化,我发现没有明显的通知方式。
目前,我只是在连接失败时重新浏览并检查IP是否已更改。我希望这不是最干净的方法。有什么想法吗?
答案 0 :(得分:1)
可能存在对NSNetService性质的轻微误解 - 这会导致您的混淆。
你应该保留对NSNetService的引用,当你想连接它时,你告诉它:
- (void)resolveWithTimeout:(NSTimeInterval)timeout
该调用立即返回,并且在找到该服务的地址时告知您的NSNetServiceDelegate。理想情况下,您在这些限制范围内工作。
如果您真的只想主动跟踪IP地址更改,那么维护每个NSNetService的实例,在每个NSNetService上调用startMonitoring(),并维护代理接收的每个netServiceDidResolveAddress()回调的记录。