0
我遇到的问题是获取网络上所有可到达的客户端。下面的方法在调用时会返回一些客户端。在大多数情况下,其他Android客户端。然而,对于PC它在防火墙打开时失败。是否有一种更有效的方式来获得Java/Android中的所有客户端纯粹或将需要使用android NDK?此域中的专家的任何帮助将谢谢。提前感谢。如何有效地ping和发现网络上的所有客户端?
/***
* ping_JavaStyle(final int j)
* uses multi threads to enhance performance
* while pinging from 0>j<=255
* @param j
*/
private void ping_JavaStyle(final int j)
{
new Thread(new Runnable() { // new thread for parallel execution
public void run() {
try {
String testIp = prefix + String.valueOf(j);
InetAddress address = InetAddress.getByName(testIp);
String output = address.toString().substring(1);
if (address.isReachable(3000)) {
System.out.println(output + " is on the network");
ipList.add(testIp);
} else {
if (retest(testIp, 139)) {
ipList.add(testIp);
} else {
System.out.println("Not Reachable: " + output);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}
检查https://github.com/rorist/android-network-discovery/ –