首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSNetServiceBrowser找不到存在的服务

NSNetServiceBrowser找不到存在的服务
EN

Stack Overflow用户
提问于 2012-11-12 00:15:16
回答 1查看 2.1K关注 0票数 1

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

代码语言:javascript
复制
service = [[NSNetService alloc] initWithDomain:@"" type:@"_scijs._tcp" name:@"ScienceJeopardyServer" port:4567];
[service publish];

下面是搜索和委托方法:

代码语言:javascript
复制
[sbrows setDelegate:self];
[sbrows searchForServicesOfType:@"_scijs._tcp" inDomain:@""];

下面是委托方法:

代码语言:javascript
复制
-(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];
}

其中大部分只是图形用户界面代码和NSLogs,但我从来没有得到图形用户界面的变化或NSLogs。有谁有解决方案吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-12 03:24:33

很有可能它就在你的客户身上。

  1. 在委托方法中设置断点。
  2. 确保sbrows没有超出作用域。如果它不在作用域之外,则不会调用willSearch,则不会有其他响应。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13332965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档