how2j.cn


package util; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; public class DualUtil { public static <T> T get(long seconds, Callable<T> callable) { final ExecutorService exec = Executors.newFixedThreadPool(1); T result = null; try { Future<T> future = exec.submit(callable); result = future.get(seconds, TimeUnit.SECONDS); } catch (Exception e) { } // 关闭线程池 exec.shutdown(); return result; } public static boolean isReachable(String ip) { try { boolean reachable = false; Process p = Runtime.getRuntime().exec("ping -n 1 " + ip); BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream())); String line = null; StringBuilder sb = new StringBuilder(); while ((line = br.readLine()) != null) { if (line.length() != 0) sb.append(line + "\r\n"); } reachable = sb.toString().contains("TTL"); br.close(); return reachable; } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); return false; } } public static void main(String[] args) throws InterruptedException, ExecutionException { Boolean b = get(1, new Callable<Boolean>() { @Override public Boolean call() throws Exception { return isReachable("192.168.2.129"); } }); System.out.println(b); // System.out.println(isReachable("192.168.2.119")); } }


HOW2J公众号,关注后实时获知最新的教程和优惠活动,谢谢。


提问之前请登陆
提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢
关于 软件和工具-工具和软件-DualUtil 的提问

尽量提供截图代码异常信息,有助于分析和解决问题。 也可进本站QQ群交流: 496725845
提问尽量提供完整的代码,环境描述,越是有利于问题的重现,您的问题越能更快得到解答。
对教程中代码有疑问,请提供是哪个步骤,哪一行有疑问,这样便于快速定位问题,提高问题得到解答的速度
在已经存在的几千个提问里,有相当大的比例,是因为使用了和站长不同版本的开发环境导致的,比如 jdk, eclpise, idea, mysql,tomcat 等等软件的版本不一致。
请使用和站长一样的版本,可以节约自己大量的学习时间。 站长把教学中用的软件版本整理了,都统一放在了这里, 方便大家下载: https://how2j.cn/k/helloworld/helloworld-version/1718.html

上传截图