【问题标题】:Network Device Discovery网络设备发现
【发布时间】:2011-10-11 03:37:51
【问题描述】:

对于我的 Android 应用,用户需要连接到将托管在同一 LAN 中某处的服务器。在同一个 LAN 上可以托管多个服务器。为了方便用户,我打算扫描 Android 设备连接到的当前 LAN,然后列出所有运行服务器的网络设备,而不是让用户将 IP 输入计算机手动。

我对网络还很陌生,经过一番搜索后,我发现我必须使用多播 DNS 搜索或 UDP 广播来检测其他设备。我还找到了一个名为 jmDNS 的不错的库,尽管我在上面找到的文档和示例代码很少。有人可以指出我正在努力做的事情以节省我浪费的时间(主要是如果我走在正确的轨道上)的正确方向吗?我假设我必须稍微修改我的服务器才能广播它?如果我将 IP 手动输入到我的应用程序的配置页面中,它会完全按预期工作。此外,这只需要发现 Windows 计算机,不确定这是否重要。提前致谢。

【问题讨论】:

  • 是的,mDNS 可能是最好的方式。不过,您需要在 Windows PC 上安装 Bonjour 服务,因为那里不支持它。
  • 安装是指实际的安装程序(这可能是个问题)还是只是将代码添加到我的服务器以使其支持 Bonjour?
  • 认为您可以走“添加到您的服务器”路线,但这对您来说会更有效;到目前为止,我一直在使用 Apple 的这个安装程序:en.wikipedia.org/wiki/…(Mac OS 和 Linux 有原生支持;我相信这个服务可能是 iTunes 安装的一部分,所以计算机可能已经有这个)
  • 其他帮助我解决类似问题的相关 SO 问题:stackoverflow.com/questions/4464207/…

标签: android networking device discovery jmdns


【解决方案1】:

嗯,jmDNS 是一个完整的 Java 库,您可以使用它来进行设置。它可用于广播您的服务,其他客户可以搜索。

Windows 上的 Bounjour 服务有点棘手,尽管这绝对是可能的。我想说的更简单的方法是使用 jmDNS 为您的服务器和客户端进行广播和发现。

【讨论】:

    【解决方案2】:

    您可以在局域网上运行 jDM 或其他服务作为后台服务或后台服务。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-04
      • 1970-01-01
      相关资源
      最近更新 更多