我正在尝试在Swift3中实现Bonjour NetServiceBrowser,以便发现我网络上的主机。
当我使用以下命令在终端中手动搜索时,我将找到主机。
dns-sd -B
但是,当我尝试在Swift中使用NetServiceBrowser时(参见下面的代码),它只会打印"开始搜索..."。我按照Bonjour documentation。
实现了这个类我不明白出了什么问题。 Bonjour对Swift的工作有何不同?我在网上找不到一个有效的例子。我在domain
("本地","本地。","")或{{1}的几种变体上尝试了多种变体}。
name
答案 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()
}