1 package nl.toolforge.core.util.net; 2 3 import java.util.Date; 4 5 /*** 6 * The good old <code>ping</code> command in Java. Probably a copy of what exists elsewhere, but since I would have 7 * expect this one in the JDK ... Then, it took me 15 minutes to build this. 8 * 9 * @author D.A. Smedes 10 * @version $Id: Ping.java,v 1.1 2004/09/06 20:06:08 asmedes Exp $ 11 */ 12 public final class Ping { 13 14 private Ping() {} 15 16 /*** 17 * Check if port <code>port</code> is reachable on host <code>host</code> within the next <code>timeOutInMillis</code> 18 * milliseconds, or else the check failed. 19 */ 20 public static boolean ping(String host, int port, int timeOutInMillis) { 21 22 PingThread t = new PingThread(host, port); 23 24 t.start(); 25 26 long now = new Date().getTime(); 27 long start = now; 28 boolean success = false; 29 30 while (!success && now < (start + timeOutInMillis)) { 31 32 try { 33 Thread.sleep(10); 34 } catch (InterruptedException e) { 35 return false; 36 } 37 success = t.pingOk(); 38 now = new Date().getTime(); 39 } 40 return success; 41 } 42 }