Bonjour服务发现没有找到主机

时间:2017-02-16 11:12:31

标签: ios swift swift3 bonjour

我正在尝试在Swift3中实现Bonjour NetServiceBrowser,以便发现我网络上的主机。

当我使用以下命令在终端中手动搜索时,我将找到主机。

dns-sd -B

但是,当我尝试在Swift中使用NetServiceBrowser时(参见下面的代码),它只会打印"开始搜索..."。我按照Bonjour documentation

实现了这个类

我不明白出了什么问题。 Bonjour对Swift的工作有何不同?我在网上找不到一个有效的例子。我在domain("本地","本地。","")或{{1}的几种变体上尝试了多种变体}。

name

1 个答案:

答案 0 :(得分:1)

我发现为什么它不适合我。我试图从主循环执行代码,而显然应该从不同的线程调用它。因此,我将startSearch中的代码更改为

DispatchQueue.main.async {
        self.browser.schedule(in: RunLoop.current, forMode: .defaultRunLoopMode)
        self.browser.searchForServices(ofType: self.name, inDomain: self.domain)
        RunLoop.current.run()
}