Ping or Poll a Machine via Java Thread

                            Ping a machine from java program




package com.test.demo;

import java.net.InetAddress;
import java.net.Socket;
import java.util.Date;


public class PingTest implements Runnable {

        public static final int HOST_NOT_FOUND = 0;
        private static final int LOOKING_FOR_HOST = 1;
        public static final int CANNOT_CONNECT = 2;
        private static final int CONNECTING_TO_HOST = 3;
        public static final int SUCCESS = 4;

        private String hostname;
        private int port;
        private int status;

        private PingTest(String hostname, int port) {
                this.hostname = hostname;
                this.port = port;
        }
     
        public void run() {
                try {
                Date dt1 = new Date();
                System.out.println("Start==>"+dt1.toString());
                status = LOOKING_FOR_HOST;
                System.out.println("LOOKING_FOR_HOST......");
                        InetAddress addr = InetAddress.getByName(hostname);
                        status = CONNECTING_TO_HOST;
                        System.out.println("CONNECTING_TO_HOST......");
                        Socket s = new Socket(addr, port);
                        status = SUCCESS;
                        System.out.println("SUCCESS......");
                        s.close();
                } catch (Exception e) {
                Date dt2 = new Date();
                System.out.println("Error==>"+dt2.toString());
                 e.printStackTrace();
                }
        }

        public static int ping(String hostname, int port, long maxWait) {
                PingTest ping = new PingTest(hostname, port);
                try {
                        Thread t = new Thread(ping);
                        t.setDaemon(true);
                        t.start();
                        t.join(maxWait);
                     
                        if (t.isAlive()) {
                        System.out.println("thread is alive");
                        } else {
                        System.out.println("thread finished");
                        }
                     
                } catch (InterruptedException ie) {
                }
                return ping.status;
        }
     
       /* public static int ping(String hostname, int port, long maxWait) {
            PingTest ping = new PingTest(hostname, port);
            try {
                    Thread t = new Thread(ping);
                    t.setDaemon(true);
                    t.start();
                    t.join(maxWait);
            } catch (InterruptedException ie) {
            }
            return ping.status;
    }*/
     
}

Comments

Popular posts from this blog

Conversion from Clob To String in java and Vice versa

Portable Java 8/ JDK8 setup without admin rights

Multi Threading , Producer consumer problem in Java