JmDNS 与 iOS Bonjour 的互操作性

我正在使用 JmDNS 注册服务并希望在 iOS 上发现它。我可以使用 JmDNS 客户端发现该服务,也可以发现网络上的其他几个服务。问题是我无法在 iOS 应用程序中发现我的服务,但我确实看到了大量其他服务,但没有在 JmDNS 客户端中看到。我一直在使用网络浏览器 iOS 应用程序进行测试,它可以看到许多其他服务,但我的 JmDNS 客户端看不到任何服务。


两批找到的服务最明显的区别是iOS应用程序找到的所有服务都是name._tcp.local的形式。 JmDNS客户端查到的都是name._http._tcp.local。


我显然缺少 ZeroConfig 的一些关键方面,因为我希望在我自己的地方以及网络上的所有其他地方看到相同的服务。


我尝试将 name._http._tcp 更改为 name._tcp,似乎所做的就是做到这一点,这样我就无法在任何地方发现 JnDNS 服务。我也尝试过各种命名组合。


public final static String REMOTE_TYPE = "_http._tcp.local.";

final HashMap<String, String> values = new HashMap<String, String>();

values.put("DvNm", "Sample-" + id);

ServiceInfo pairservice = ServiceInfo.create(REMOTE_TYPE, "sample", 1025, 0, 0, values);

jmdns.registerService(pairservice);

我希望在我自己的地方以及网络上的所有其他地方都能看到相同的服务。


万千封印
浏览 55回答 1
1回答

繁星淼淼

我仍在挖掘,但我确实找到了最完整的 Bonjour 浏览器,可以解决该问题,并可以看到我在不同平台上单独看到的所有不同服务。我原本期望看到基于单个请求的所有内容,但该浏览器发出大量请求来完成工作。 Flame浏览器可以从Apple应用程序商店获取,但幸运的是,代码也可以在GitHub上获取。它写得很好并且很容易理解,所以如果您遇到这个问题,请检查一下。https://github.com/tominsam/flametouch
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java