GellaFu 2016-08-17 07:39 采纳率: 0%
浏览 1945

NSNetServiceBrowser 不能发现已存在的服务

局域网内服务已经发布,在终端使用命令: dns-sd 可以检测到。

写了一个很简单的应用来发现服务,安装在测试手机(ios9.3)可以立即发现服务;但是安装在另一个测试机(ios8.4)上却没有立即找到设备(只调用netServiceBrowserWillSearch后没有其他反应)。有时过了很长时间才会发现服务,有时却会立即出现,概率性出现。
安装了Bonjour Browser应用来debug,ios9设备上回立即出现,但是同一时间8.4设备上却一直在scanning,有时过了1min才会出现结果,有时等了2min都没有出现结果。

代码很简单如下:
- (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");
}


有哪位大牛能帮忙分析一下?谢谢
  • 写回答

2条回答 默认 最新

  • GellaFu 2016-08-17 07:47
    关注

    苹果的Bonjour协议接口内部实现有更新吗?(从ios8 到ios9),或者是我写的代码哪里有问题,或者手机属性需要设置?

    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器