Проблемы NSNetServiceBrowser на iOS - не обнаружение всех изменений

Я думаю, что это может быть ошибка iOS.

Я запускаю следующий простой код, чтобы транслировать сетевой сервис:

self.netService = [[NSNetService alloc] initWithDomain:@"local."
                                                          type:@"_testnetwork._tcp."
                                                          name:[[UIDevice currentDevice] name]
                                                          port:port];
self.netService.delegate = self;
[self.netService publish];

На другом устройстве я запускаю этот код для обнаружения сетевых сервисов:

self.netServiceBrowser = [[NSNetServiceBrowser alloc] init];
self.netServiceBrowser.delegate = (id)self;
[self.netServiceBrowser searchForServicesOfType:@"_testnetwork._tcp." inDomain:@"local."];

Что происходит, так это то, что браузер будет обнаруживать, когда сетевая служба появляется впервые, а затем, когда служба уходит, большую часть времени она не обнаруживает ее и все еще думает, что NSNetService все еще вещает. Интересно, что приложения могут быть остановлены на обоих устройствах, а также может быть запущен браузер, и он все равно обнаружит, что старая служба транслируется в данный момент - она ​​зависает.

Использование этого кода в терминале на Mac правильно показывает, когда службы появляются и исчезают:

dns-sd -B _test._tcp

Любое решение этой проблемы? Это ошибка iOS?

0 ответов

Другие вопросы по тегам