NSNetService回拨IP更改?

时间:2011-06-28 18:48:29

标签: objective-c bonjour

跟踪可能发生变化的网络服务的IP地址的最佳方法是什么? (例如,在en0,en1之间来回切换)

调用startMonitoring后,当TXT记录数据发生变化时会收到回调,但是如果IP发生变化,我发现没有明显的通知方式。

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

1 个答案:

答案 0 :(得分:1)

可能存在对NSNetService性质的轻微误解 - 这会导致您的混淆。

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

- (void)resolveWithTimeout:(NSTimeInterval)timeout

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

如果您真的只想主动跟踪IP地址更改,那么维护每个NSNetService的实例,在每个NSNetService上调用startMonitoring(),并维护代理接收的每个netServiceDidResolveAddress()回调的记录。