我想实现一个功能,它将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