J'ai un client et un serveur Cocoa (OSX) personnalisé, et le serveur publie un service bonjour. J'ai le client recherchant le serveur en utilisant NSNetServiceBrowser
, mais je n'obtiens jamais aucun résultat. Je sais que le service est publié car il est dans la sortie de mdns -B _myservicetype._tcp
. Mon code de recherche et de publication recherche et publie avec le même domaine, nom et type, et est presque identique à l'exemple de code Apple. Voici le code d'édition:NSNetServiceBrowser ne trouve pas les services qui existent
service = [[NSNetService alloc] initWithDomain:@"" type:@"_scijs._tcp" name:@"ScienceJeopardyServer" port:4567];
[service publish];
Et voici la recherche et les méthodes délégué:
[sbrows setDelegate:self];
[sbrows searchForServicesOfType:@"_scijs._tcp" inDomain:@""];
Et voici les méthodes de délégués:
-(void)netServiceBrowserWillSearch:(NSNetServiceBrowser *)aNetServiceBrowser {
[self.statusLabel setStringValue:@"Searching for server..."];
[self.serverIndicator setHidden:NO];
[self.serverIndicator startAnimation:self];
}
-(void)netServiceBrowser:aNetServiceBrowser didNotSearch:(NSDictionary *)errorDict {
[self.statusLabel setStringValue:@"Error finding server."];
[self.serverIndicator stopAnimation:self];
[self.serverIndicator setHidden:YES];
}
-(void)netServiceBrowserDidStopSearch:(NSNetServiceBrowser *)aNetServiceBrowser {
[self.serverIndicator stopAnimation:self];
[self.serverIndicator setHidden:YES];
}
-(void)netServiceBrowser:(NSNetServiceBrowser *)aNetServiceBrowser didFindService:(NSNetService *)aNetService moreComing:(BOOL)moreComing {
[aNetServiceBrowser stop];
NSLog(@"Found server.");
[self.statusLabel setStringValue:@"Resolving service..."];
[aNetService setDelegate:self];
[aNetService resolveWithTimeout:10.0];
}
La plupart de c'est juste le code GUI et NSLogs, Pourtant, je ne reçois jamais les changements GUI ou les NSLogs. Quelqu'un a-t-il une solution?
Merci beaucoup, s'est avéré être un problème ARC subtil avec la portée. +1 et acceptez! – Linuxios
Alors, comment avez-vous résolu cela? J'ai le même problème. –