Android 网络设备发现

Android 网络设备发现,android,networking,device,discovery,jmdns,Android,Networking,Device,Discovery,Jmdns,对于我的Android应用程序,用户需要连接到一台服务器,该服务器将托管在同一局域网的某个地方。同一局域网上可以有多台服务器。为了方便用户,我打算扫描Android设备连接到的当前LAN,然后列出所有运行服务器的网络设备,而不是让用户手动将IP输入计算机 我对网络相当陌生,经过一些搜索后,我发现我必须使用多播DNS搜索或UDP广播来检测其他设备。我还发现了一个很好的名为jmDNS的库,尽管我在其中发现的文档和示例代码很少。有没有人能为我指出正确的方向,告诉我该做些什么来节省浪费的时间(主要是在我

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


我对网络相当陌生,经过一些搜索后,我发现我必须使用多播DNS搜索或UDP广播来检测其他设备。我还发现了一个很好的名为jmDNS的库,尽管我在其中发现的文档和示例代码很少。有没有人能为我指出正确的方向,告诉我该做些什么来节省浪费的时间(主要是在我走对了路的情况下)?我假设我将不得不修改我的服务器一点,以广播它在那里?如果我在我的应用程序的配置页面中手动输入IP,它将完全按照预期工作。此外,这只需要发现Windows计算机,不确定这是否重要。提前感谢。

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


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

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

是的,mDNS可能是最好的方法。不过,您需要在Windows PC上安装Bonjour服务,因为它在Windows PC上不受本机支持。所谓安装,您是指实际的安装程序(这可能是个问题)还是只是将代码添加到我的服务器以使其支持Bonjour?我想您可以选择“添加到您的服务器”路线,但这对您来说会是更多的工作;到目前为止,我一直在使用苹果的这个安装程序:(Mac OS和Linux有本机支持;我相信这项服务可能是iTunes安装的一部分,所以电脑可能已经有了这个)其他相关的问题帮助我解决了类似的问题: