我想實現一個功能,它將ping web服務的地址,如果它返回true,那麼應用程序將通過web服務運行,否則它將使用設備的數據庫(sqlite)。Android ping一個web服務地址
我寫的代碼,
public boolean lookfunc()
{
String name1=name;
boolean reachable=false;
try {
InetAddress address = InetAddress.getByName("192.168.1.56");
reachable = address.isReachable(3000);
System.out.println("address.isReachable(3000)"+reachable);
}
catch (UnknownHostException e){
System.err.println("Unable to lookup ");
}
catch (IOException e){
System.err.println("Unable to reach ");
}
catch(Exception e1){System.out.println("Exception raised");}
return reachable;
}
192.168.1.56在強制在命令提示符下,但在這裏它的代碼總是返回false地址。
而web服務的網址是:http://192.168.1.56:8080/WIP/services/ConnectionDAO?wsdl,這裏也拋出UnknownHostException。
你確實知道192.168.x.x是爲私有子網保留的,對吧?大多數外部網絡基礎設施將拒絕將通信量傳遞到該範圍,因爲它被認爲是錯誤的或某種類型的攻擊。因此,例如,您在其移動數據計劃上的手機無法聯繫您的有線/ DSL路由器。 – 2011-05-16 07:57:49