【发布时间】:2011-08-26 05:55:18
【问题描述】:
我想实现一个功能,它将 ping Web 服务的地址,如果它返回 true,那么应用程序将通过 Web 服务运行,否则它将使用设备的数据库 (sqlite)。
我写了代码,
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 在命令提示符中 ping,但在代码中它总是返回 false。
Web 服务 url 是:http://192.168.1.56:8080/WIP/services/ConnectionDAO?wsdl,这里也抛出 UnknownHostException。
【问题讨论】:
-
你知道 192.168.x.x 是为私有子网保留的,对吧?大多数外部网络基础设施将拒绝将流量传递到该范围,因为它被假定为错误或某种攻击。因此,例如,您使用其移动数据套餐的手机无法联系您的有线/DSL 路由器。
标签: android web-services localhost ping inet