我使用bonjour创建了一个应用程序,并且能够将文件从一台设备发送到另一台设备。但是问题是:如果不运行设备上的两个应用程序,就无法发现LAN上的设备。我是否需要使用bonjour运行应用程序才能使用bonjour检测到它。
最佳答案
是的你是。运行应用程序将适当的条目注册到iOS多播DNS服务中。一旦您关闭了应用程序,我希望它会从多播DNS注册表中删除自身(这样做是正确的,因为它不再可用),因此您无法从其他设备中找到它。
编辑:(非常粗略)Bonjour是多播DNS。 Bonjour服务运行多播DNS服务器。当您的应用程序启动时,它将与本地多播DNS服务器通信,并创建许多条目,这些条目标识出该服务正在提供的服务,其可用的端口以及其他相关属性。它还将自己注册为有兴趣了解运行该服务的任何其他网络设备。
本地多播DNS服务器发出通知,以向其他任何在网络上侦听新服务可用的信号。 Bonjour服务会通知您的应用程序(在其他计算机上)出现了另一个客户端,这或多或少是如何完成魔术的。 multicast DNS更长的文章无处不在:Google是您的朋友。
关于ios - Bonjour如何在IOS上工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6660049/