Example usage for org.apache.commons.net.ntp TimeInfo computeDetails

List of usage examples for org.apache.commons.net.ntp TimeInfo computeDetails

Introduction

In this page you can find the example usage for org.apache.commons.net.ntp TimeInfo computeDetails.

Prototype

public void computeDetails() 

Source Link

Document

Compute and validate details of the NTP message packet.

Usage

From source file:beans.NTPClient.java

/**
 * Process <code>TimeInfo</code> object and print its details.
 * //from   w  w w  .j  ava2 s . co  m
 * @param info
 *          <code>TimeInfo</code> object.
 */
public static void processResponse(TimeInfo info) {
    NtpV3Packet message = info.getMessage();
    int stratum = message.getStratum();
    String refType;
    if (stratum <= 0) {
        refType = "(Unspecified or Unavailable)";
    } else if (stratum == 1) {
        refType = "(Primary Reference; e.g., GPS)"; // GPS, radio clock, etc.
    } else {
        refType = "(Secondary Reference; e.g. via NTP or SNTP)";
    }
    // stratum should be 0..15...
    System.out.println(" Stratum: " + stratum + " " + refType);
    int version = message.getVersion();
    int li = message.getLeapIndicator();
    System.out.println(" leap=" + li + ", version=" + version + ", precision=" + message.getPrecision());

    System.out.println(" mode: " + message.getModeName() + " (" + message.getMode() + ")");
    int poll = message.getPoll();
    // poll value typically btwn MINPOLL (4) and MAXPOLL (14)
    System.out.println(
            " poll: " + (poll <= 0 ? 1 : (int) Math.pow(2, poll)) + " seconds" + " (2 ** " + poll + ")");
    double disp = message.getRootDispersionInMillisDouble();
    System.out.println(" rootdelay=" + numberFormat.format(message.getRootDelayInMillisDouble())
            + ", rootdispersion(ms): " + numberFormat.format(disp));

    int refId = message.getReferenceId();
    String refAddr = NtpUtils.getHostAddress(refId);
    String refName = null;
    if (refId != 0) {
        if (refAddr.equals("127.127.1.0")) {
            refName = "LOCAL"; // This is the ref address for the Local Clock
        } else if (stratum >= 2) {
            // If reference id has 127.127 prefix then it uses its own reference
            // clock
            // defined in the form 127.127.clock-type.unit-num (e.g. 127.127.8.0
            // mode 5
            // for GENERIC DCF77 AM; see refclock.htm from the NTP software
            // distribution.
            if (!refAddr.startsWith("127.127")) {
                try {
                    InetAddress addr = InetAddress.getByName(refAddr);
                    String name = addr.getHostName();
                    if (name != null && !name.equals(refAddr)) {
                        refName = name;
                    }
                } catch (UnknownHostException e) {
                    // some stratum-2 servers sync to ref clock device but fudge stratum
                    // level higher... (e.g. 2)
                    // ref not valid host maybe it's a reference clock name?
                    // otherwise just show the ref IP address.
                    refName = NtpUtils.getReferenceClock(message);
                }
            }
        } else if (version >= 3 && (stratum == 0 || stratum == 1)) {
            refName = NtpUtils.getReferenceClock(message);
            // refname usually have at least 3 characters (e.g. GPS, WWV, LCL, etc.)
        }
        // otherwise give up on naming the beast...
    }
    if (refName != null && refName.length() > 1) {
        refAddr += " (" + refName + ")";
    }
    System.out.println(" Reference Identifier:\t" + refAddr);

    TimeStamp refNtpTime = message.getReferenceTimeStamp();
    System.out.println(" Reference Timestamp:\t" + refNtpTime + "  " + refNtpTime.toDateString());

    // Originate Time is time request sent by client (t1)
    TimeStamp origNtpTime = message.getOriginateTimeStamp();
    System.out.println(" Originate Timestamp:\t" + origNtpTime + "  " + origNtpTime.toDateString());

    long destTime = info.getReturnTime();
    // Receive Time is time request received by server (t2)
    TimeStamp rcvNtpTime = message.getReceiveTimeStamp();
    System.out.println(" Receive Timestamp:\t" + rcvNtpTime + "  " + rcvNtpTime.toDateString());

    // Transmit time is time reply sent by server (t3)
    TimeStamp xmitNtpTime = message.getTransmitTimeStamp();
    System.out.println(" Transmit Timestamp:\t" + xmitNtpTime + "  " + xmitNtpTime.toDateString());

    // Destination time is time reply received by client (t4)
    TimeStamp destNtpTime = TimeStamp.getNtpTime(destTime);
    System.out.println(" Destination Timestamp:\t" + destNtpTime + "  " + destNtpTime.toDateString());

    info.computeDetails(); // compute offset/delay if not already done
    Long offsetValue = info.getOffset();
    Long delayValue = info.getDelay();
    String delay = (delayValue == null) ? "N/A" : delayValue.toString();
    String offset = (offsetValue == null) ? "N/A" : offsetValue.toString();

    System.out.println(" Roundtrip delay(ms)=" + delay + ", clock offset(ms)=" + offset); // offset
                                                                                          // in
                                                                                          // ms
}

From source file:com.cscao.apps.ntplib.NTPClient.java

/**
 * Process <code>TimeInfo</code> object and print its details and return the offset.
 *
 * @param info <code>TimeInfo</code> object.
 *//*from   w  ww. jav  a  2 s. c  o  m*/
private long processResponse(TimeInfo info) {
    NtpV3Packet message = info.getMessage();
    if (message == null) {
        return 0;
    }

    int stratum = message.getStratum();
    String refType;
    if (stratum <= 0) {
        refType = "(Unspecified or Unavailable)";
    } else if (stratum == 1) {
        refType = "(Primary Reference; e.g., GPS)"; // GPS, radio clock, etc.
    } else {
        refType = "(Secondary Reference; e.g. via NTP or SNTP)";
    }
    // stratum should be 0..15...
    //        System.out.println(" Stratum: " + stratum + " " + refType);
    details += " Stratum: " + stratum + " " + refType + "\n";

    int version = message.getVersion();
    int li = message.getLeapIndicator();
    //        System.out.println(" leap=" + li + ", version="
    //                + version + ", precision=" + message.getPrecision());

    details += " leap=" + li + ", version=" + version + ", precision=" + message.getPrecision() + "\n";
    details += " mode: " + message.getModeName() + " (" + message.getMode() + ")" + "\n";

    //        System.out.println(" mode: " + message.getModeName() + " (" + message.getMode() + ")");
    int poll = message.getPoll();
    // poll value typically btwn MINPOLL (4) and MAXPOLL (14)
    //        System.out.println(" poll: " + (poll <= 0 ? 1 : (int) Math.pow(2, poll))
    //                + " seconds" + " (2 ** " + poll + ")");

    details += " poll: " + (poll <= 0 ? 1 : (int) Math.pow(2, poll)) + " seconds" + " (2 ** " + poll + ")"
            + "\n";

    double disp = message.getRootDispersionInMillisDouble();

    //        System.out.println(" rootdelay=" + numberFormat.format(message.getRootDelayInMillisDouble())
    //                + ", rootdispersion(ms): " + numberFormat.format(disp));

    details += " rootdelay=" + numberFormat.format(message.getRootDelayInMillisDouble())
            + ", rootdispersion(ms): " + numberFormat.format(disp) + "\n";

    int refId = message.getReferenceId();
    String refAddr = NtpUtils.getHostAddress(refId);
    String refName = null;
    if (refId != 0) {
        if (refAddr.equals("127.127.1.0")) {
            refName = "LOCAL"; // This is the ref address for the Local Clock
        } else if (stratum >= 2) {
            // If reference id has 127.127 prefix then it uses its own reference clock
            // defined in the form 127.127.clock-type.unit-num (e.g. 127.127.8.0 mode 5
            // for GENERIC DCF77 AM; see refclock.htm from the NTP software distribution.
            if (!refAddr.startsWith("127.127")) {
                try {
                    InetAddress addr = InetAddress.getByName(refAddr);
                    String name = addr.getHostName();
                    if (name != null && !name.equals(refAddr)) {
                        refName = name;
                    }
                } catch (UnknownHostException e) {
                    // some stratum-2 servers sync to ref clock device but fudge stratum level higher... (e.g. 2)
                    // ref not valid host maybe it's a reference clock name?
                    // otherwise just show the ref IP address.
                    refName = NtpUtils.getReferenceClock(message);
                }
            }
        } else if (version >= 3 && (stratum == 0 || stratum == 1)) {
            refName = NtpUtils.getReferenceClock(message);
            // refname usually have at least 3 characters (e.g. GPS, WWV, LCL, etc.)
        }
        // otherwise give up on naming the beast...
    }
    if (refName != null && refName.length() > 1) {
        refAddr += " (" + refName + ")";
    }
    //        System.out.println(" Reference Identifier:\t" + refAddr);

    details += " Reference Identifier:\t" + refAddr + "\n";

    TimeStamp refNtpTime = message.getReferenceTimeStamp();
    //        System.out.println(" Reference Timestamp:\t" + refNtpTime + "  " + refNtpTime.toDateString());

    details += " Reference Timestamp:\t" + refNtpTime + "  " + refNtpTime.toDateString() + "\n";

    // Originate Time is time request sent by client (t1)
    TimeStamp origNtpTime = message.getOriginateTimeStamp();
    //        System.out.println(" Originate Timestamp:\t" + origNtpTime + "  " + origNtpTime.toDateString());

    details += " Originate Timestamp:\t" + origNtpTime + "  " + origNtpTime.toDateString() + "\n";

    long destTime = info.getReturnTime();
    // Receive Time is time request received by server (t2)
    TimeStamp rcvNtpTime = message.getReceiveTimeStamp();
    //        System.out.println(" Receive Timestamp:\t" + rcvNtpTime + "  " + rcvNtpTime.toDateString());

    details += " Receive Timestamp:\t" + rcvNtpTime + "  " + rcvNtpTime.toDateString() + "\n";

    // Transmit time is time reply sent by server (t3)
    TimeStamp xmitNtpTime = message.getTransmitTimeStamp();
    //        System.out.println(" Transmit Timestamp:\t" + xmitNtpTime + "  " + xmitNtpTime.toDateString());

    details += " Transmit Timestamp:\t" + xmitNtpTime + "  " + xmitNtpTime.toDateString() + "\n";

    // Destination time is time reply received by client (t4)
    TimeStamp destNtpTime = TimeStamp.getNtpTime(destTime);
    //        System.out.println(" Destination Timestamp:\t" + destNtpTime + "  " + destNtpTime.toDateString());

    details += " Destination Timestamp:\t" + destNtpTime + "  " + destNtpTime.toDateString() + "\n";

    info.computeDetails(); // compute offset/delay if not already done
    Long offsetValue = info.getOffset();
    Long delayValue = info.getDelay();
    String delay = (delayValue == null) ? "N/A" : delayValue.toString();
    String offset = (offsetValue == null) ? "N/A" : offsetValue.toString();

    //        System.out.println(" Roundtrip delay(ms)=" + delay
    //                + ", clock offset(ms)=" + offset); // offset in ms
    details += " Roundtrip delay(ms)=" + delay + ", clock offset(ms)=" + offset + "\n";

    // calibrate local clock
    //        return (offsetValue == null) ? -1 : (destNtpTime.getTime() + offsetValue);

    // return offset
    return (offsetValue == null) ? 0 : offsetValue;
}

From source file:ntp.NTPClient.java

/**
 * Process <code>TimeInfo</code> object and print its details.
 * @param info <code>TimeInfo</code> object.
 *//* www  .ja  va  2  s  .c  om*/
public static void processResponse(TimeInfo info) {
    NtpV3Packet message = info.getMessage();
    int stratum = message.getStratum();
    String refType;
    if (stratum <= 0) {
        refType = "(Unspecified or Unavailable)";
    } else if (stratum == 1) {
        refType = "(Primary Reference; e.g., GPS)"; // GPS, radio clock, etc.
    } else {
        refType = "(Secondary Reference; e.g. via NTP or SNTP)";
    }
    // stratum should be 0..15...
    System.out.println(" Stratum: " + stratum + " " + refType);
    int version = message.getVersion();
    int li = message.getLeapIndicator();
    System.out.println(" leap=" + li + ", version=" + version + ", precision=" + message.getPrecision());

    System.out.println(" mode: " + message.getModeName() + " (" + message.getMode() + ")");
    int poll = message.getPoll();
    // poll value typically btwn MINPOLL (4) and MAXPOLL (14)
    System.out.println(
            " poll: " + (poll <= 0 ? 1 : (int) Math.pow(2, poll)) + " seconds" + " (2 ** " + poll + ")");
    double disp = message.getRootDispersionInMillisDouble();
    System.out.println(" rootdelay=" + numberFormat.format(message.getRootDelayInMillisDouble())
            + ", rootdispersion(ms): " + numberFormat.format(disp));

    int refId = message.getReferenceId();
    String refAddr = NtpUtils.getHostAddress(refId);
    String refName = null;
    if (refId != 0) {
        if (refAddr.equals("127.127.1.0")) {
            refName = "LOCAL"; // This is the ref address for the Local Clock
        } else if (stratum >= 2) {
            // If reference id has 127.127 prefix then it uses its own reference clock
            // defined in the form 127.127.clock-type.unit-num (e.g. 127.127.8.0 mode 5
            // for GENERIC DCF77 AM; see refclock.htm from the NTP software distribution.
            if (!refAddr.startsWith("127.127")) {
                try {
                    InetAddress addr = InetAddress.getByName(refAddr);
                    String name = addr.getHostName();
                    if (name != null && !name.equals(refAddr)) {
                        refName = name;
                    }
                } catch (UnknownHostException e) {
                    // some stratum-2 servers sync to ref clock device but fudge stratum level higher... (e.g. 2)
                    // ref not valid host maybe it's a reference clock name?
                    // otherwise just show the ref IP address.
                    refName = NtpUtils.getReferenceClock(message);
                }
            }
        } else if (version >= 3 && (stratum == 0 || stratum == 1)) {
            refName = NtpUtils.getReferenceClock(message);
            // refname usually have at least 3 characters (e.g. GPS, WWV, LCL, etc.)
        }
        // otherwise give up on naming the beast...
    }
    if (refName != null && refName.length() > 1) {
        refAddr += " (" + refName + ")";
    }
    System.out.println(" Reference Identifier:\t" + refAddr);

    TimeStamp refNtpTime = message.getReferenceTimeStamp();
    System.out.println(" Reference Timestamp:\t" + refNtpTime + "  " + refNtpTime.toDateString());

    // Originate Time is time request sent by client (t1)
    TimeStamp origNtpTime = message.getOriginateTimeStamp();
    System.out.println(" Originate Timestamp:\t" + origNtpTime + "  " + origNtpTime.toDateString());

    long destTime = info.getReturnTime();
    // Receive Time is time request received by server (t2)
    TimeStamp rcvNtpTime = message.getReceiveTimeStamp();
    System.out.println(" Receive Timestamp:\t" + rcvNtpTime + "  " + rcvNtpTime.toDateString());

    // Transmit time is time reply sent by server (t3)
    TimeStamp xmitNtpTime = message.getTransmitTimeStamp();
    System.out.println(" Transmit Timestamp:\t" + xmitNtpTime + "  " + xmitNtpTime.toDateString());

    // Destination time is time reply received by client (t4)
    TimeStamp destNtpTime = TimeStamp.getNtpTime(destTime);
    System.out.println(" Destination Timestamp:\t" + destNtpTime + "  " + destNtpTime.toDateString());

    info.computeDetails(); // compute offset/delay if not already done
    Long offsetValue = info.getOffset();
    Long delayValue = info.getDelay();
    String delay = (delayValue == null) ? "N/A" : delayValue.toString();
    String offset = (offsetValue == null) ? "N/A" : offsetValue.toString();

    System.out.println(" Roundtrip delay(ms)=" + delay + ", clock offset(ms)=" + offset); // offset in ms
    Promedio = Promedio + offsetValue;
    Cant = Cant + 1;
}

From source file:ntpclock.kamalan.com.utility.NTPClient.java

/**
 * Process <code>TimeInfo</code> object and print its details.
 * @param info <code>TimeInfo</code> object.
 *//* w  w  w.  j  a v  a 2  s  .  c  o m*/
public static Date processResponse(TimeInfo info) {

    NtpV3Packet message = info.getMessage();
    int stratum = message.getStratum();
    String refType;
    if (stratum <= 0) {
        refType = "(Unspecified or Unavailable)";
    } else if (stratum == 1) {
        refType = "(Primary Reference; e.g., GPS)"; // GPS, radio clock, etc.
    } else {
        refType = "(Secondary Reference; e.g. via NTP or SNTP)";
    }
    // stratum should be 0..15...
    System.out.println(" Stratum: " + stratum + " " + refType);
    int version = message.getVersion();
    int li = message.getLeapIndicator();
    System.out.println(" leap=" + li + ", version=" + version + ", precision=" + message.getPrecision());

    System.out.println(" mode: " + message.getModeName() + " (" + message.getMode() + ")");
    int poll = message.getPoll();
    // poll value typically btwn MINPOLL (4) and MAXPOLL (14)
    System.out.println(
            " poll: " + (poll <= 0 ? 1 : (int) Math.pow(2, poll)) + " seconds" + " (2 ** " + poll + ")");
    double disp = message.getRootDispersionInMillisDouble();
    System.out.println(" rootdelay=" + numberFormat.format(message.getRootDelayInMillisDouble())
            + ", rootdispersion(ms): " + numberFormat.format(disp));

    int refId = message.getReferenceId();
    String refAddr = NtpUtils.getHostAddress(refId);
    String refName = null;
    if (refId != 0) {
        if (refAddr.equals("127.127.1.0")) {
            refName = "LOCAL"; // This is the ref address for the Local Clock
        } else if (stratum >= 2) {
            // If reference id has 127.127 prefix then it uses its own reference clock
            // defined in the form 127.127.clock-type.unit-num (e.g. 127.127.8.0 mode 5
            // for GENERIC DCF77 AM; see refclock.htm from the NTP software distribution.
            if (!refAddr.startsWith("127.127")) {
                try {
                    InetAddress addr = InetAddress.getByName(refAddr);
                    String name = addr.getHostName();
                    if (name != null && !name.equals(refAddr)) {
                        refName = name;
                    }
                } catch (UnknownHostException e) {
                    // some stratum-2 servers sync to ref clock device but fudge stratum level higher... (e.g. 2)
                    // ref not valid host maybe it's a reference clock name?
                    // otherwise just show the ref IP address.
                    refName = NtpUtils.getReferenceClock(message);
                }
            }
        } else if (version >= 3 && (stratum == 0 || stratum == 1)) {
            refName = NtpUtils.getReferenceClock(message);
            // refname usually have at least 3 characters (e.g. GPS, WWV, LCL, etc.)
        }
        // otherwise give up on naming the beast...
    }
    if (refName != null && refName.length() > 1) {
        refAddr += " (" + refName + ")";
    }
    System.out.println(" Reference Identifier:\t" + refAddr);

    TimeStamp refNtpTime = message.getReferenceTimeStamp();
    System.out.println(" Reference Timestamp:\t" + refNtpTime + "  " + refNtpTime.toDateString());

    // Originate Time is time request sent by client (t1)
    TimeStamp origNtpTime = message.getOriginateTimeStamp();
    System.out.println(" Originate Timestamp:\t" + origNtpTime + "  " + origNtpTime.toDateString());

    long destTime = info.getReturnTime();
    // Receive Time is time request received by server (t2)
    TimeStamp rcvNtpTime = message.getReceiveTimeStamp();
    System.out.println(" Receive Timestamp:\t" + rcvNtpTime + "  " + rcvNtpTime.toDateString());

    // Transmit time is time reply sent by server (t3)
    TimeStamp xmitNtpTime = message.getTransmitTimeStamp();
    System.out.println(" Transmit Timestamp:\t" + xmitNtpTime + "  " + xmitNtpTime.toDateString());

    // Destination time is time reply received by client (t4)
    TimeStamp destNtpTime = TimeStamp.getNtpTime(destTime);
    System.out.println(" Destination Timestamp:\t" + destNtpTime + "  " + destNtpTime.toDateString());

    info.computeDetails(); // compute offset/delay if not already done
    Long offsetValue = info.getOffset();
    Long delayValue = info.getDelay();
    String delay = (delayValue == null) ? "N/A" : delayValue.toString();
    String offset = (offsetValue == null) ? "N/A" : offsetValue.toString();

    System.out.println(" Roundtrip delay(ms)=" + delay + ", clock offset(ms)=" + offset); // offset in ms

    // convert date string to java util.date format
    // sample: Wed, Jul 16 2014 05:00:00.070
    Date date = null;
    try {
        //            Log.e("NTPClient", destNtpTime.toDateString());
        date = new SimpleDateFormat("EEE, MMM dd yyyy hh:mm:ss.SSS").parse(destNtpTime.toDateString());
    } catch (ParseException e) {
        e.printStackTrace();
    }

    return date;
}

From source file:ntpgraphic.LineChart.java

public static void processResponse(TimeInfo info, int i) {
    info.computeDetails();
    Long offsetValue = info.getOffset();
    Long delayValue = info.getDelay();
    String delay = (delayValue == null) ? "N/A" : delayValue.toString();
    String offset = (offsetValue == null) ? "N/A" : offsetValue.toString();
    if (delayValue == null) {
        delayValue = (long) 0;
    }/* ww  w.  j a  v  a2 s  .co  m*/
    switch (serie) {
    case 1:
        series1.add(i, delayValue);
        break;
    case 2:
        series2.add(i, delayValue);
        break;
    case 3:
        series3.add(i, delayValue);
        break;
    case 4:
        series4.add(i, delayValue);
        break;
    }
    serie++;

    System.out.println(" Roundtrip delay(ms)=" + delay + ", clock offset(ms)=" + offset); // offset in ms
    //Promedio=Promedio+offsetValue;
    //Cant=Cant+1;
}

From source file:ntpgraphic.PieChart.java

public static void processResponse(TimeInfo info, int i) {
    info.computeDetails();
    Long offsetValue = info.getOffset();
    Long delayValue = info.getDelay();
    String delay = (delayValue == null) ? "N/A" : delayValue.toString();
    String offset = (offsetValue == null) ? "N/A" : offsetValue.toString();
    if (delayValue == null) {
        delayValue = (long) 0;
    }/*from   w  w  w .j  av  a 2 s  .  com*/
    switch (i) {
    case 1:
        offset1 = (int) (long) offsetValue;
        break;
    case 2:
        offset2 = (int) (long) offsetValue;
        break;
    case 3:
        offset3 = (int) (long) offsetValue;
        break;
    case 4:
        series4.add(i, delayValue);
        break;
    }

    System.out.println(" Roundtrip delay(ms)=" + delay + ", clock offset(ms)=" + offset); // offset in ms
    //Promedio=Promedio+offsetValue;
    //Cant=Cant+1;
}

From source file:org.apache.directory.server.ntp.NtpITest.java

/**
 * Tests to make sure NTP works when enabled in the server.
 *
 * @throws Exception if there are errors
 *///from  www.jav a 2  s  .  com
@Test
@Ignore
// Fails with a timeout !!!
public void testNtp() throws Exception {
    InetAddress host = InetAddress.getByName(null);

    NTPUDPClient ntp = new NTPUDPClient();
    ntp.setDefaultTimeout(500000);

    long currentTime = System.currentTimeMillis();
    TimeInfo timeInfo = ntp.getTime(host, port);
    long returnTime = timeInfo.getReturnTime();
    assertTrue(Math.abs(currentTime - returnTime) < 1000);

    timeInfo.computeDetails();

    String offsetMsg = "Expected offset in range (-1000, 1000), but was " + timeInfo.getOffset();
    assertTrue(offsetMsg, -1000 < timeInfo.getOffset() && timeInfo.getOffset() < 1000);
    String delayMsg = "Expected delay in range [0, 1000), but was " + timeInfo.getOffset();
    assertTrue(delayMsg, 0 <= timeInfo.getDelay() && timeInfo.getDelay() < 1000);
}

From source file:org.blue.star.plugins.check_local_time.java

public boolean execute_check() {

    /* Declare variables */
    NTPUDPClient ntpClient = new NTPUDPClient();
    TimeInfo time;
    InetAddress server;/*from  ww  w  .  j av a 2s  .  com*/
    offsets = new long[checkCount];

    /* Check for verbosity */
    if (super.verbose > 0)
        verbose = true;

    /* Configure client to meet our requirements */
    ntpClient.setDefaultTimeout(timeout);
    ntpClient.setVersion(ntpVersion);

    try {
        if (verbose) {
            System.out.println("Using NTP Server: " + hostname);
            System.out.println("Using NTP Port: " + port);
            System.out.println("Using NTP Version: " + ntpVersion);
        }

        server = InetAddress.getByName(hostname);
        ntpClient.open();

        if (verbose)
            System.out.println("Beginning total of " + checkCount + " checks.");

        for (int i = 0; i < checkCount; i++) {
            if (verbose)
                System.out.println("Taking time reading number " + i);

            time = ntpClient.getTime(server, port);

            if (time == null) {
                /* State unknown if we can't connect to NTP server, our local time could be fine */
                check_state = common_h.STATE_UNKNOWN;
                check_message = "State Unknown - Unable to connect to NTP Server!";
                return true;
            }
            time.computeDetails();

            offsets[i] = time.getOffset() - time.getDelay();

            /* Small sleep so that we are at least getting some variety in our readings */
            Thread.sleep(200);
        }

        if (verbose)
            System.out.println("Calculating & storing time averages.");
        /* Calculate and store average offset */
        long total = 0;

        for (int i = 0; i < offsets.length; i++)
            total += offsets[i];

        average = total / offsets.length;
    } catch (Exception e) {
        check_state = common_h.STATE_CRITICAL;
        check_message = e.getMessage();
    } finally {
        try {
            ntpClient.close();
        } catch (Exception e) {
        }
    }
    return true;
}

From source file:org.eclipse.kura.linux.clock.JavaNtpClockSyncProvider.java

@Override
protected boolean syncClock() throws KuraException {
    boolean ret = false;
    // connect and get the delta
    NTPUDPClient ntpClient = new NTPUDPClient();
    ntpClient.setDefaultTimeout(this.m_ntpTimeout);
    try {/*from ww  w .  ja v  a  2 s  .  c  om*/
        ntpClient.open();
        try {
            InetAddress ntpHostAddr = InetAddress.getByName(this.m_ntpHost);
            TimeInfo info = ntpClient.getTime(ntpHostAddr, this.m_ntpPort);
            this.m_lastSync = new Date();
            info.computeDetails();

            this.m_listener.onClockUpdate(info.getOffset());
            ret = true;
        } catch (IOException e) {
            ntpClient.close();
            s_logger.warn(
                    "Error while synchronizing System Clock with NTP host {}. Please verify network connectivity ...",
                    this.m_ntpHost);
        }
    } catch (Exception e) {
        throw new KuraException(KuraErrorCode.INTERNAL_ERROR, e);
    }
    return ret;
}

From source file:org.eclipse.kura.windows.clock.JavaNtpClockSyncProvider.java

@Override
protected boolean syncClock() throws KuraException {
    boolean ret = false;
    // connect and get the delta
    NTPUDPClient ntpClient = new NTPUDPClient();
    ntpClient.setDefaultTimeout(this.m_ntpTimeout);
    try {/*from   www .  j a  v a  2s  . co  m*/
        ntpClient.open();
        try {
            InetAddress ntpHostAddr = InetAddress.getByName(this.m_ntpHost);
            TimeInfo info = ntpClient.getTime(ntpHostAddr, this.m_ntpPort);
            this.m_lastSync = new Date();
            info.computeDetails();

            this.m_listener.onClockUpdate(info.getOffset());
            ret = true;
        } catch (IOException e) {
            s_logger.warn(
                    "Error while synchronizing System Clock with NTP host {}. Please virify network connectivity ...",
                    this.m_ntpHost);
        }
    } catch (Exception e) {
        throw new KuraException(KuraErrorCode.INTERNAL_ERROR, e);
    }
    return ret;
}