【发布时间】: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