如何解决Windows dns-sdBonjour / ZeroConf未通过USB发现iPhone服务
我在iPhone上发布了Bonjour _http._tcp。 服务。使用iPhone Wifi 关闭;在MacBook的终端上运行以下dns-sd命令:
dns-sd -B _services._dns-sd._udp
然后使用USB照明电缆将iPhone连接到MacBook,dns-sd将发现以下iPhone服务:
Timestamp A/R Flags if Domain Service Type Instance Name
19:22:45.126 Add 3 5 . _tcp.local. _http
从MacBook断开USB照明电缆将显示:
Timestamp A/R Flags if Domain Service Type Instance Name
19:22:45.126 Add 3 5 . _tcp.local. _http
19:23:53.924 Rmv 1 5 . _tcp.local. _http
但是,在Windows 10 PC上重复上述步骤(运行dns-sd,将USB Lighting连接到PC并断开与PC的连接), dns-sd 没有发现该服务。
使用iPhone Wifi 打开,PC上的dns-sd会发现iPhone服务:
Timestamp A/R Flags if Domain Service Type Instance Name
19:32:36.238 Add 2 13 . _tcp.local. _http
当iPhone Wifi关闭时,PC上的dns-sd将显示:
Timestamp A/R Flags if Domain Service Type Instance Name
19:32:36.238 Add 2 13 . _tcp.local. _http
19:33:38.471 Rmv 0 13 . _tcp.local. _http
我从https://developer.apple.com/download/more/?=Bonjour%20SDK%20for%20Windows;安装了Bonjour SDK v333.10,iTunes也可以在PC上正常工作(可以显示iPhone)。
为什么PC上的dns-sd(Bonjour / ZeroConf)无法通过USB找到iPhone服务?
非常感谢。
解决方法
Bounjour通信基于Socket。通过USB电缆将iPhone连接到MacBook时,MacBook会为iPhone分配一个专用IP地址(169.254.x.x)。
使用MacBook上的Discovery - DNS-SD Browser,当iPhone的wifi处于关闭状态时,Discovery通过USB显示发现的Bonjour服务,并具有专用IP地址:
当iPhone的wifi开启时,发现将显示具有两个IP地址(一个wifi和一个USB)的发现的Bonjour服务:
因此,MacBook上的 dns-sd 能够在没有wifi的iPhone上发现该服务。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。