【问题标题】:NSNetServiceBrowser not finding services that existNSNetServiceBrowser 找不到存在的服务
【发布时间】:2012-11-11 16:15:16
【问题描述】:

我有一个自定义的 Cocoa (OSX) 服务器和客户端,服务器发布了一个 bonjour 服务。我让客户端使用NSNetServiceBrowser 搜索服务器,但我从未得到任何结果。我知道该服务已发布,因为它位于mdns -B _myservicetype._tcp 的输出中。我的搜索和发布代码都使用相同的域、名称和类型进行搜索和发布,并且几乎与 Apple 示例代码相同。这是发布代码:

service = [[NSNetService alloc] initWithDomain:@"" type:@"_scijs._tcp" name:@"ScienceJeopardyServer" port:4567];
[service publish];

这里是搜索和委托方法:

[sbrows setDelegate:self];
[sbrows searchForServicesOfType:@"_scijs._tcp" inDomain:@""];

这里是委托方法:

-(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];
}

其中大部分只是 GUI 代码和 NSLogs,但我从未得到 gui 更改或 NSLogs。有人有解决办法吗?

【问题讨论】:

    标签: objective-c macos bonjour nsnetservicebrowser


    【解决方案1】:

    它可能在您的客户端中。

    1. 在委托方法中设置断点。
    2. 确保sbrows 没有超出范围。如果超出范围 willSearch 将被调用,则没有其他响应。

    【讨论】:

    • 非常感谢,原来是范围的一个微妙的 ARC 问题。 +1 并接受!
    • 那么你是如何解决这个问题的?我遇到了完全相同的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-05
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多