NSNetService 和 NSNetServiceBrowser NSNetService 和 NSNetServiceBrowser 类是 Cocoa 中基础框架的一部分,为服务发现和发布提供了面向对象的抽象 NSNetService 对象表示 Bonjour 服务的实例,用于发布或由客户端发现的服务,而 NSNetServiceBrowser 表示用于特定类型服务的浏览器。 NSNetService 和 NSNetServiceBrowser 被调度在默认的 NSRunLoop 对象上,以异步方式执行发布、发现和解析。 NSNetService 和 NSNetServiceBrowser 对象返回的所有结果都由委托对象处理。这些对象必须与一个运行循环相关联才能运行,但它不必是默认的。 与 NSNetService 和 NSNetServiceBrowser 不同,CFNetServices 类型不需要运行循环,并且可以在需要此行为时同步运行。
我们直接使用抽象最高级的NSNetService,NSNetServiceBrowser来解决问题。 NSNetService代表一个服务。NSNetServiceBrowser用于搜索服务。 因此我们需要注册发布到本地网络上: self.netService = [[NSNetService alloc]initWithDomain:@"local." type: - (void)netServiceBrowser:(NSNetServiceBrowser *)aNetServiceBrowser didFindService:(NSNetService 在spider中,我们选中设备后,需要获取设备的hostName以进行连接: - (void)setService:(NSNetService *)service { _service = service self.service resolveWithTimeout:5]; } 解析完毕后,service会通知delegate: - (void)netServiceDidResolveAddress:(NSNetService
10.11), ios(9.0), tvos(9.0)) __WATCHOS_PROHIBITED; */ /* Creates a bidirectional stream task with an NSNetService * The NSNetService will be resolved before any IO completes. - (NSURLSessionStreamTask *)streamTaskWithNetService:(NSNetService *)service API_AVAILABLE(macos(10.11
NSString *)hostname port:(NSInteger)port // - (NSURLSessionStreamTask *)streamTaskWithNetService:(NSNetService