发现设备的最佳方法是什么?

时间:2019-06-24 15:00:31

标签: android networking

我正在做一个简单的学校项目:一个带有摄像机的树莓派PI,该摄像机应该连接到android应用程序以观看安全录像。

服务器在Rasberry Pi上运行,Android应用程序连接到该服务器(在本地网络上)。但是,它必须易于使用和设置,因此首次运行时,该应用程序必须“发现” Raspberry Pi并连接到它。这就是我现在的做法:

首先,我找到运行该应用的设备所使用的IP地址,如下所示:

Formatter.formatIpAddress(((WifiManager) getSystemService(WIFI_SERVICE)).getConnectionInfo().getIpAddress());

这将返回IP地址。让我们现在使用192.168.1.50

然后,我通过正则表达式删除了最后一部分,因此我仍然使用192.168.1.。 然后,我将建立一个包含253个线程的固定线程池,并尝试尝试连接到192.168.1.2-192.168.1.254范围内的每个IP地址上的套接字。

在小型网络中一次最多只能连接250个设备,这很好用,但是如果是较大的网络(连接了更多设备,并且IP地址的范围可以是192.168.1.2,该怎么办?到192.168.255.255,甚至是10.0.0.0-10.255.255.255?可能的IP地址数量成倍增加,我认为在这里创建16,581,375个线程不是答案。

所以,我的问题是,有没有更好的方法来做到这一点?如果是,那是什么?

0 个答案:

没有答案