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/ –