NSNetServiceBrowser can not find service sometimes

487 Views Asked by At

The service has been published and I can find it using "dns-sd -B". When I run my app on iphone(ios 9.2/ios 9.3) it can find the service every time but it doesn't work on another iphone(ios 8.4). netServiceBrowserWillSearch is called after searchForServicesOfType, then it give no other responses;after half an hour or more it maybe find the service but after that sometimes it will give nothing again. some part of code: when click button, start method is called.

- (void) start
{
    NSLog(@"start to search service");
    if ( _bonjourServiceBrowser != nil ) {
        [self stop];
    }
    _bonjourServiceBrowser = [[NSNetServiceBrowser alloc] init];

    [_bonjourServiceBrowser scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
    _bonjourServiceBrowser.delegate = self;
    [_bonjourServiceBrowser searchForServicesOfType:@"_pp._tcp." inDomain:@"local."];

}

- (void) netServiceBrowser:(NSNetServiceBrowser *)netServiceBrowser
        didFindService:(NSNetService *)netService
            moreComing:(BOOL)moreServicesComing {
    NSLog(@"did found service and service name is : %@ and more %d", netService.name,moreServicesComing);

}

-(void)netServiceBrowser:(NSNetServiceBrowser *)browser didNotSearch:(NSDictionary<NSString *,NSNumber *> *)errorDict {
    NSLog(@"not search ");
}

-(void)netServiceBrowserWillSearch:(NSNetServiceBrowser *)browser {
    NSLog(@"will search");
}

Can anyone help me ?

0

There are 0 best solutions below