问题标签 [zeroconf]

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 投票
3 回答
28135 浏览

networking - 我可以从命令行使用 Bonjour 吗?

是否可以从命令行使用 Bonjour?例如,如果我想注册一个服务,我输入类似的内容:bonjour -register service_name port。然后 Bonjour 为我的服务分配一个免费 IP。或者,例如,如果我想查看可用服务的列表,我可以输入如下内容:bonjour -showServices。然后我得到所有可用服务的列表及其名称、IP 地址和端口。存在这样的东西吗?

我对可用的文档感到困惑。例如在这里,在文档的开头我看到:

要注册您的服务,请调用 DNSServiceRegister。

我应该在哪里称呼它?在命令行中?在 Java 中?在 C++ 中?在蟒蛇?没有提供这种上下文有点奇怪。

一般来说,我只找到有关 zeroconf 和 Bonjour 的一般信息(它应该做什么)。但我找不到具体而简单的东西。像 Bonjour 使用的“Hello World”示例。

有人可以帮我吗?

0 投票
6 回答
473 浏览

java - 为什么要以如此复杂的方式完成?是面向对象的思维方式吗?

我正在尝试使用 Java 中的 Bonjour。我找到了一个如何做的例子,我想我理解了。但我仍然不明白为什么要以如此复杂的方式完成。可能是我错过了什么。

所以,我发现的代码以下列方式工作(代码也在下面给出)。

  1. Java 程序尝试查找服务,如果找到该服务,程序会尝试“解析”该服务(我认为“解析服务”的意思是“使用服务”或“连接到服务”)。

  2. 要“解析”找到的服务,我们需要调用“DNSSD.resolve”方法,并且作为该方法的最后一个参数,我们需要提供一个对象。

  3. “DNSSD.resolve”尝试解析给定的服务。如果“DNSSD.resolve”能够解析服务,它会调用作为最后一个参数给出的实例的“serviceResolved”方法。如果“DNSSD.resolve”无法解析服务,则调用上述对象的“operationFailed”方法。

这是代码:

用下面的方式组织代码会不会更简单。

  1. 我们使用有关我们要解析的服务的信息调用“DNSSD.resolve”方法。

  2. 我们不会将任何对象传递给“DNSSD.resolve”。

  3. “DNSSD.resolve”不调用任何类的任何方法。

  4. “DNSSD.resolve”试图“解析”给定的服务,如果它能够做到,“DNSSD.resolve”返回真。否则返回false。

  5. 程序根据“DNSSD.resolve”返回的值运行“serviceResolved”或“operationFailed”方法。

还是我只是不习惯 OOP 的思维方式?

0 投票
1 回答
433 浏览

java - Bonjour 可以浏览具有特定名称的服务吗?

Bonjour 提供“DNSSD.browse(serviceType,callBackObject)”方法来浏览特定类型的服务。如果找到给定类型的服务,Bonjour 将调用“callBackObject.serviceFound”。如果服务丢失,Bonjour 会调用“callBackObject.serviceLost”。

我一直认为“DNSSD.browse”是一种监控特定服务的方法。Bonjour 监视特定服务并在服务被发现(可用)或丢失(不可用)时调用必要的方法。

但是我意识到“DNSSD.browse”接收(作为参数)一种服务类型(例如“ http .tcp”)并且可以有多个这种类型的服务。因此,如果找到或丢失任何指定类型的服务,它可能分别调用“serviceFound”和“serviceLost”。

但在我的应用程序中,我只想浏览一项特定的服务。最好的方法是什么?我有两个潜在的解决方案:

  1. 当我注册一个服务时,我给它一个唯一的类型。例如:“ server1.http .tcp ”。

  2. 我注册具有唯一名称(不是类型)的服务,并要求 Bonjour 浏览具有特定名称的服务。但我不确定 Bonjour 是否提供这种可能性。它可以浏览具有特定名称的服务吗?

0 投票
5 回答
31919 浏览

android - 如何在 Android 上发现 zeroconf (Bonjour) 服务?我在使用 jmDNS 时遇到问题

我正在使用 Droid / Android 2.0.1 并且显然遇到了很多人都遇到的问题:我无法使用我所知道的一个纯 Java zeroconf 库 jmDNS 来发现服务。(Apple 的 Bonjour,虽然它可以在 Linux 和 Windows Java 上运行,但我相信由于依赖本机代码,它更难移植到 Android。)

我可以创建服务,但不能发现它们。我试图弄清楚发生了什么。

这里有一个持续的问题报告;与多播和 IPv6 相关,但似乎也抛出了 jmDNS 的用户: http ://code.google.com/p/android/issues/detail?id=2323

知道为什么这个人可能会成功吗?请参阅错误报告中的评论 22。(我是 SO 新手,所以不能发布多个 URL。)

我已经测试了他们的代码,但没有任何运气。

有没有人使用 jmDNS 或其他库在 Android 上成功完成 zeroconf 服务发现?

我的发现问题是否可能与 IPv6 多播问题有关?

0 投票
1 回答
423 浏览

dns - DNS解析不依赖于星号系统的路由器

基本上,我有一个运行星号的 Debian 机器,通过 DHCP 分配了一个 IP,主机名为 XXX。我的 Windows 浏览器可以解析主机名,但如果我在 X-Lite 或我的 SPA922 手机中使用主机名,则无法解析。有什么方法可以在不依赖路由器或分配静态 IP 的情况下使其工作(要求使其可移植)。我在想零配置,但不确定(盒子也有有限的硬盘)。非常感谢任何帮助。

0 投票
1 回答
8554 浏览

c# - 是否有可用的纯 C# ZeroConf、bonjour 或 dns-sd?

我正在构建一个使用 Zeroconf 的 .net-microframework 应用程序。现有的 zeroconf 解决方案似乎都依赖 dns-sd.dll 或 .net 的其他一些互操作功能,而 .netmf 不支持这些功能。

你知道有没有纯 C# 版本的 zeroconf(或 dns-sd)?

0 投票
2 回答
377 浏览

logging - log4net 支持 zeroconf 吗?

我最近检查了 Apache Chainsaw 作为我的 log4net 日志的查看器。一个让我觉得有趣的功能是 zeroconf: http: //logging.apache.org/log4j/companions/zeroconf/apidocs/org/apache/log4j/net/ZeroConfSocketHubAppender.html

log4net 是否支持 Apache Chainsaw 使用的 zeroconf?是否有像 Java ZeroConfSocketHubAppender 这样的 log4net zeroconf appender?

0 投票
1 回答
672 浏览

log4j - 我在哪里可以找到 log4j 的 ZeroConfSocketHubAppender 的源代码?

我正在寻找一种使 log4net 支持 zeroconf 以将日志发布到 Apache Chainsaw 的方法(请参阅此处:Does log4net support zeroconf?)。显然 log4j 已经可以使用 ZeroConfSocketHubAppender 做到这一点。

我在哪里可以查看 java ZeroConfSocketHubAppender 的源代码?我查看了 Apache Chainsaw 和 Log4j 存储库,但都没有成功。

0 投票
2 回答
3354 浏览

c - Zeroconf 名称解析

我正在开发一个带有嵌入式网络服务器的控制设备。网络服务器为任何请求它的网络浏览器(来自 Windows 浏览器、Mac 浏览器、iPhone android 等)提供控制接口。

我遇到的问题是一般地知道如何访问设备的一般方法。即在网络浏览器中输入什么地址。

固定 IP 对我的用户来说太技术化了,并且可能会出错,因为我的设备可以插入许多不同的本地网络。使用 uPnp 服务发现需要在某些平台的客户端上运行软件,并且不像只输入网址那么自然。我想实现名称解析。

我当前的实现使用 netbios 协议。因此,在 Windows 浏览器中,我可以键入 //controller/ 并且它可以工作,但这不适用于 Mac 或智能手机。我还可以尝试实现 Apple 的 mDnsresponder,它应该让 Mac 和 iPhone 玩得开心(尽管我认为我仅限于 //controller.local/)。也许 Android、Symbian 等也存在类似的事情,但是没有一个更通用的解决方案来创建一个我可以尝试的网络名称吗?

该平台目前基于 TI Cortex M3 处理器和 lwIP。

非常感谢任何有关如何找到解决方案的帮助或建议。

亲切的问候,

鲍勃

0 投票
2 回答
1149 浏览

router - BitTorrents 如何相互连接?

我刚刚使用 uTorrent 下载了一个新的 linux 发行版,并开始想知道 uTorrent(和其他 bittorrent)如何通过 NAT 路由器相互发送文件?他们显然使用跟踪器进行介绍,但他们如何将信息传递给彼此?有这方面的白皮书吗?我找不到一个:/
谢谢