要判断一个IP或网站是否能够连接上
自己在子线程中使用如下代码:(注意:在主线程使用网络请求一般不被允许,因此使用InetAddress 会导致报错)
//根据主机名称获得主机名称对象 InetAddress host = InetAddress.getByname("www.baIDu.com"); //检查该主机在规定的时间内能否连上 boolean isReachable = host.isReachable(5000); /** *注意这里一直链接失败,直接使用java写一个测试类能够链接远程主机,但是在AndroID中不能链接, *未寻找到原因。。。。。。 */ String desc = ""; if(isReachable){//可以链接 desc = String.format("%s\n 主机名为%s\n 主机地址为%s \n当前时间为%s", desc,host.getHostname(),host.getHostAddress(),DateUtil.getNowTime()); }else { desc = "无链接,当前时间为:"+ DateUtil.getNowDateTime()+""; }
方法二(成功)在子线程中引用如下方法
//这里的path 可以设置为 “www.baIDu.com” 端口设置为 80 public static boolean isOnline(String path,int port) { try { int timeoutMs = 1500; Socket sock = new Socket(); SocketAddress sockaddr = new InetSocketAddress(path, port); sock.connect(sockaddr, timeoutMs); sock.close(); return true; } catch (IOException e) { return false; } }
结果是否链接上:true
如果有谁能够知道第一个怎么回事,希望不吝赐教
总结以上是内存溢出为你收集整理的Android 使用 InetAddress 判断指定主机是否能够链接全部内容,希望文章能够帮你解决Android 使用 InetAddress 判断指定主机是否能够链接所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)