问题标签 [jmdns]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
254 浏览

android - JmDNS 侦听器不起作用

我已经搜索了一些网络,但我没有找到正确的答案。JmDNS 侦听器不起作用。为什么?

我在 JmDNS 上使用了 addServiceTypeListener,但监听器不起作用。用在Gingerbread上 我想知道addServiceTypeListener和addserviceListener的使用方法。感谢任何回复。

0 投票
1 回答
767 浏览

android - 在 Android 设备上获取 WifiManager.MulticastLock - 可靠且一致?

我正在考虑开发一个 Android 应用程序,该应用程序将作为其功能的一部分,从当前连接到 WiFi 网络的所有设备发送和接收广播消息。

虽然许多开发人员建议这样的要求需要应用程序来获取 MulticastLock,但有经验表明:

  1. 不能依赖成功获取 MulticastLock,因为 acquire() 方法不会返回请求操作的任何状态。
  2. 即使您确实获得了锁,也不能保证 WiFi 堆栈不会过滤掉未针对设备的数据包。

还有其他人说多播锁在 2.3.3 及更高版本上可靠工作,可靠性问题仅适用于运行 2.3.2 及更低版本的设备。

他们中的一些人说没有任何保证(现在或未来的设备),因为对广播和多播的支持是芯片组控制的功能,并且 OEM 拥有最终决定权。他们认为电池消耗是 OEM 允许或拒绝芯片组软件配置的主要动机。

所以,在我深入研究我的项目之前,我想知道这个问题的当前状态是什么,以及我正在尝试做的事情是否可行,即不涉及猜测工作。如果有解决办法,我愿意实施,只要我知道它会可靠地工作。请分享您的意见和经验。提前致谢。

0 投票
1 回答
445 浏览

java - JmDNS 似乎在 Mac OS X 上根本不起作用

我在尝试让 JmDNS 在 Mac OS X 上运行时遇到问题。症状是我可以发现网络上的任何服务,但我自己的计算机上的服务除外。list他们是在本地主机上还是在我的计算机上运行的虚拟机上都没有关系 - 在任何一种情况下,他们都不会从通话中回来。

我设法将我们正在做的事情浓缩为一个在 Windows 上通过但在 Mac OS X 上失败的测试。现在的问题是我无法弄清楚问题出在哪里。

在调试器中,我可以看到它没有将套接字绑定到任何特定地址,只是绑定到特定端口。但它随后将其设置为特定界面。

我在 Wireshark 中看到的是数据包来自我机器的公共 IP(en0 的地址),即使 lo0 是我用于测试的接口。我还看到了查询和响应数据包。回应正在回来。

但是在 Java 方面,我看到它在调用DatagramSocket#receive(DatagramPacket)并且从未收到数据包。

(我还花了半天时间寻找 JmDNS 的替代品,但看起来其他声称可以替代它的库实际上还不能进行多播,这让它们有点毫无意义。:()

这里发生了什么?

0 投票
1 回答
808 浏览

java - 具有多个参数的 JmDNS TXT 字段

我正在使用 JmDNS 来模拟 Bonjour 服务/AirPlay。

iPhone 看不到我的设备,所以我检查了我的 MBPR 上的 mDNS 日志。结果

(1) 工作服务

(2) 我的非工作服务

如您所见,第一个字符被切断了。如果我在每个 kv 对之前添加 \" 它会给出一个非常奇怪的结果。那么我怎样才能得到与 (1) 中相同的结果呢?

谢谢!

0 投票
1 回答
775 浏览

android - 我应该为 Bonjour 使用哪个 IPv6 地址?

在我的一个 Android 应用程序中,我使用 JmDNS 来支持 Bonjour。启动时,我为 NetworkInterface 中的每个 InetAddress 创建一个 JmDNS 实例。所以代码看起来像:

到目前为止效果很好,通过对 v4 和 v6 地址执行此操作,我可以从其他客户端(例如在 iOS 上)正确查看所有内容。

但是,对于 IPv6,一个网络适配器实际上可以与多个 v6 地址相关联。因此,例如,我的一位 beta 测试人员向我发送了一份“错误报告”,其中包含以下网络设置(我更改了一些数字以防止信息泄露 - 希望它不会改变含义):

查看该输出,看起来这两个 IPv6 地址实际上非常相似,可能一个是本地链接,而另一个不是。阅读Wikipedia 上的文章,我了解到在 IPv6 中,所有接口实际上也必须有一个本地链接地址。

但是,我对这两者中的哪一个实际用于我的 JmDNS 注册感到困惑。如果我同时注册两者,我会得到一个恒定的日志流,上面写着:

收到来自我们自己的冲突探测:[x@123456789 类型:TYPE_SRV 索引 33,类:CLASS_IN 索引 1,名称:something._tcp.local。ttl:'3599/3600' 服务器:'SomeName.local.:5000']

那么我应该使用哪一个?是否有一些通用规则来决定注册组中的哪些地址?

0 投票
0 回答
282 浏览

android - 使用 Android 通过 LAN 发现本地服务器连接

我试图http://localhost:8080通过我的android设备发现本地服务器(apache tomcat)。为了实现这一点,我想到了使用heere的jmdns

但我真的很困惑如何继续,因为我不太了解网络。

这是我用谷歌搜索编写的代码,但任何帮助都会有很大帮助。

}

0 投票
1 回答
127 浏览

java - 我可以在本地无线网络上制作安卓游戏吗?


我想在android上开发一个游戏(策划者)。我想在线创建一个游戏服务器,但如果两个设备在同一个本地无线网络中,我希望它们通过本地网络玩,而不是通过在线服务器。对于服务器部分,我正在考虑将 java 和 TCP 套接字与 java 对象序列化一起使用,并且关于我希望玩家尽可能使用本地无线网络这一事实,我阅读了一些关于 JmDNS 的内容。在这一点上,我只处于早期发展阶段,我想知道这是否可能。另外,我希望您可以为我提供一些入门资源并为我指明正确的方向。
谢谢。

0 投票
2 回答
644 浏览

android - 重复 JmDNS 设备搜索

我想_http._tcp.local.每 5 秒扫描一次 Bonjour 设备(我需要在服务(和后台线程)中执行此操作。

现在我每 5 秒创建一个 JmDNS ( JmDNS.create()) 的新实例,这会泄漏内存;)。我认为必须有更好的方法来做到这一点,但我不知道......谁能帮助我?

0 投票
0 回答
1226 浏览

java - jmdns Airplay - 未发现服务

我已经为此工作了几个月,但我的 iPhone 拒绝发现我的 Java(或 Android)应用程序。我找到了一个适用于 Android (AirPin) 的接收器应用程序,它可以工作,我用它来与我的代码进行比较。

我正在自己使用最新的 jmdns 源代码构建。

此代码返回(我是 133):

如您所见,我们似乎是相同的,但是我的 iPhone 没有发现我的服务,而另一个是。

有谁知道如何解决这个问题?

0 投票
1 回答
957 浏览

java - JmDNS 设备移除检测

我正在尝试使用 JmDNS 来检测网络上设备的添加和删除。添加工作正常,只要在 JmDNS 中注册了它们各自的服务就会找到这些设备,但是,当从网络中删除设备时,它永远不会在 JmDNS 中注册。

我曾尝试定期调用jmDns.list(serviceName),但似乎它总是返回缓存值。

是否可以让 JmDNS 注册已删除的设备?

这是我用来注册服务和服务监听器的代码(仅相关部分):

服务:

服务监听器:

永远不会调用方法serviceRemoved(),即使之前注册的设备不再通电。我非常感谢在解决问题方面能提供的任何帮助。

更新:JmDNS 确实发现该设备从网络中丢失,但仅在半小时后。有没有可能缩短这个时间?