问题标签 [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 投票
1 回答
1877 浏览

c - Avahi dns_sd 兼容层无法运行浏览回调

背景

我正在为 Haskell 开发一个跨平台的 Zeroconf/Bonjour/DNS-SD 库,并认为我最好的选择是针对dns_sd.hAPI。在 Linux 下,此接口的实现由Avahi提供,它声称支持 Bonjour API 的子集。

问题

作为对我的库的健全性检查,我用 C 语言编写了一个小型测试程序,它只使用了 API 的基本框架。它浏览网络上的任何类型的服务_http._tcp,一看到就打印一条消息,然后死掉:

在我的 Mac 上,这个测试程序在 C 和等效的 Haskell 中都能正常工作(它找到了我的打印机;令人兴奋!):

但是在我的 Linux 机器上,程序在没有调用回调的情况下退出了我:

问题

  1. Avahidns_sd兼容层仍然是跨平台绑定的合适目标吗?或者,关于使用本机 Avahi API 的警告消息是否足够严重,我应该考虑重新定位?
  2. C 中跨平台 Zeroconf 的最新技术是什么?
0 投票
1 回答
1149 浏览

bonjour - 无法在其他机器上找到 JmDNS 服务

使用jmdns 3.4.1,我可以看到局域网内机器发布的服务,我也可以创建一个服务并注册它,这样我就可以在我的机器上看到了。但是,当我在局域网的另一台机器上创建新服务时,我的机器上看不到它。我在另一台机器上使用以下代码:

0 投票
2 回答
913 浏览

bonjour - 如何在接收方查看 JmDNS 服务的属性?

创建 JmDNS 服务的一种方法是:

其中 props 是描述服务的一些属性的 Map。有没有人有一个例子来说明这些属性的使用,例如如何在接收器部分使用它们。我试过了 :

但是,然后在接受此服务的机器中,我该怎么做才能看到这些属性?

我会感谢任何帮助...

0 投票
1 回答
2918 浏览

networking - 没有 DNS 的通用本地网络名称解析方法?

我正在为启用 DHCP 的网络设备编写 TCP/IP 代码。这个设备有没有一种通用的方式可以随意宣布它的主机名,几乎所有的网络浏览器(在 osx/linux/win 上)都可以通过名称访问它?(例如http://mydevice/index.htm

一种解决方案,允许最终用户在没有严格要求的情况下使用他们的“库存”计算机,例如安装 bonjour for windows 等软件包,在他们的网络上有一个 dns 服务器等。

zeroconf/dns-sd 不适用于未安装 bonjour(或类似)服务的 Windows 机器,LLMNR 不适用于开箱即用的 osx 机器。

如果没有单一的方法可以做到这一点,那么符合 dns-sd 和 LLMNR 是否会涵盖大多数已安装的操作系统基础?

0 投票
1 回答
536 浏览

winapi - ZeroConf VPN 中的节点如何通信?

我想创建一个零配置 P2P VPN 软件,例如 hamachi 或 tunngle。我浏览了很多网站、书籍和论文,但它给我带来了更多的困惑。所以我在这里。:)

首先,请给我一些链接,它们可以告诉我如何开发这样的软件,其次请告诉我这个 Zero Conf VPN 是如何工作的。

除此之外,这是我的疑问:我在某处读到这样的东西-N2N 允许人们在两台或多台计算机之间创建 VPN 连接。一台计算机要连接到另一台计算机,需要在每台计算机上运行“边缘”可执行文件。任意数量的计算机可以相互连接,但要进行所有连接,一台计算机需要运行“超级节点”可执行文件。现在要进行连接,运行“边缘”的计算机首先尝试连接到运行“超级节点”的计算机,之后一旦通过“超级节点”完成所有运行“边缘”的计算机之间的信息交换”,不再需要“超级节点”,运行“边缘”的计算机之间的连接

我的问题是如何在没有超级节点参与的情况下直接在计算机之间进行连接?它的作用基本上是为所有边缘节点分配私有 IP 地址。现在,如果 2 台计算机具有私有 IP 地址,则它们无法通过 Internet 进行通信。另一件事是,如果 2 个节点位于 2 个对称 NAT 服务器后面,那么如果为它们分配了私有 IP 地址,它们将如何通信?

帮助我了解这种 VPN 技术。

0 投票
1 回答
355 浏览

dns - jmdns 常量

我已经使用 JmDNS 有一段时间了。我可以将它用于我的应用程序。每件事对我来说都很好(我有“播音员”机器和“监听”机器,后一种机器可以看到其他设备并发现它们的信息)。

确实,我已经设法使用了 JmDNS jar 文件,但我没有完全理解这个文件中发生了什么。现在我想知道使用 JmDNS 对网络流量的影响。我查阅了文档,但无法发现常量的含义,例如QUERY_WAIT_INTERVAL,PROBE_THROTTLE_COUNT等。

我想知道播音员机器发送服务公告的默认频率。

我还注意到 DNS_TTL 的描述如下:“标准的默认 TTL 设置为 1 小时,因此一条记录将在任何侦听机器的缓存中保留一个小时,而无需再次 ping 服务器”。

我知道现在是服务的生存时间留在 DNS 缓存中,但我无法理解“清除服务器”的意图。这是否意味着当 DNS_TTL 过期时,听众必须向播音员询问服务?如果是这样,为什么需要让播音员每 1 秒(ANNOUNCE_WAIT_INTERVAL= 1000 毫秒)宣布其服务?

我感到很困惑。

0 投票
1 回答
1603 浏览

windows-7 - PnP-X 和网络存储自动安装到 Windows 7

我通过使用 Avahi(Bonjour) 和 Netatalk(AFP) 为 Mac OS X 无缝提供网络存储(就像 Time Capsule 一样)成功地测试了 Linux。

我想对 Windows 7 提出另一个问题。当我搜索时,Windows 7 使用 PnP-X 和 UPnP 来提供 Bonjour 一样的零配置体验。我想要实现的是:

  1. 在 Linux 上使用 Samba 共享一个文件夹
  2. 使用 PnP-X 和 UPnP 将此共享文件夹发布为 NAS 服务
  3. 如果 Windows 7 PC 连接到具有 Linux 的 LAN,它将发现 Linux 上的 NAS 服务
  4. Windows 7 自动启动 PnP 安装过程,新的磁盘卷将出现在资源管理器中,无需任何用户干预。这个新卷实际上是来自 Linux 的 Samba 共享文件夹

您认为使用 PnP-X 可以实现这种情况吗?我该怎么做?

此致

0 投票
3 回答
3746 浏览

java - Android 可以通过蓝牙支持 Zeroconf/Bonjour 吗?TCP/IP 怎么样?

如果我在 iPhone 上创建自定义服务,例如“_test._tcp.local”。在 Bonjour 中,我可以通过 WiFi 或/和蓝牙搜索/广播此服务。

在安卓上可以吗?

我知道有 jmDNS,但据我了解,它只能通过 WiFi/网络工作, 而不是蓝牙。

谢谢

由提供赏金的 Seva Alekseyev 编辑:我不寻求解决方法(例如 Zeroconf sans Bluetooth 或 Bluetooth sans Zeroconf)。我追求的是真实的东西。

0 投票
3 回答
341 浏览

c++ - 如何使用 Bonjour C 库知道设备何时从网络中删除

我正在使用 DNSServiceDiscovery C Library Bonjour 来检测相机和打印机。我正在使用 Windows 7 和 Visual 2010。

http://developer.apple.com/library/mac/#documentation/Networking/Reference/DNSServiceDiscovery_CRef/dns_sd_h/index.html

我能够检测到相机和打印机。现在我想知道如何在设备从网络中删除时获取通知。

建议我如何实现此功能。

0 投票
1 回答
482 浏览

java - XCode vs Java:如何发送和接收文件

对于我的硕士论文,我想编写一个应用程序,可以将文件(图像、pdf、笔记等)从 iOS 设备发送到在桌面上运行的 java 应用程序,反之亦然。

我已经在目标 C 和 java 中实现了工作 bonjour 发现和解析例程,但我不知道如何发送/接收实际数据。我怎么知道我在接收端处理的是哪种类型的文件?