NSNetService обратные вызовы для изменения IP? - PullRequest
4 голосов
/ 28 июня 2011

Каков наилучший способ отследить IP-адрес сетевого сервиса, который может измениться?(переключение назад и вперед между en0, en1, например)

После вызова startMonitoring вы получаете обратные вызовы при изменении данных TXT Record, но я не нашел очевидного способа получать уведомления при изменении IP.*

В настоящее время я просто перезаписываю при сбое соединения и проверяю, изменился ли IP.Я надеюсь, что это не самый чистый способ сделать это.Есть идеи?

1 Ответ

1 голос
/ 01 января 2012

Может существовать незначительное недопонимание природы NSNetService - это вызывает ваше замешательство.

Вам следует сохранить ссылку на NSNetService, и когда вы захотите подключиться к ней, вы скажете ей:

- (void)resolveWithTimeout:(NSTimeInterval)timeout

Этот вызов немедленно возвращается, и вашему NSNetServiceDelegate сообщается, когда был найден адрес для этой службы.В идеале вы работаете в этих пределах.

Если вы действительно просто хотите активно следить за изменениями IP-адресов, а затем поддерживать экземпляр каждого NSNetService, вызывать startMonitoring () для каждого и поддерживать запись каждого netServiceDidResolveAddress ()обратный вызов, полученный вашим делегатом.

...