Example usage for org.apache.commons.net.ntp NTPUDPClient open

List of usage examples for org.apache.commons.net.ntp NTPUDPClient open

Introduction

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

Prototype

public void open() throws SocketException 

Source Link

Document

Opens a DatagramSocket on the local host at the first available port.

Usage

From source file:NTP_Example.java

public static void main(String[] args) {
    if (args.length == 0) {
        System.err.println("Usage: NTPClient <hostname-or-address-list>");
        System.exit(1);/*from w  w w.  j av  a2 s.c  o  m*/
    }

    NTPUDPClient client = new NTPUDPClient();
    // We want to timeout if a response takes longer than 10 seconds
    client.setDefaultTimeout(10000);
    try {
        client.open();
        for (String arg : args) {
            System.out.println();
            try {
                InetAddress hostAddr = InetAddress.getByName(arg);
                System.out.println("> " + hostAddr.getHostName() + "/" + hostAddr.getHostAddress());
                TimeInfo info = client.getTime(hostAddr);
                processResponse(info);
            } catch (IOException ioe) {
                ioe.printStackTrace();
            }
        }
    } catch (SocketException e) {
        e.printStackTrace();
    }

    client.close();
}

From source file:be.fedict.trust.service.util.ClockDriftUtil.java

public static TimeInfo executeNTP(ClockDriftConfigEntity clockDriftConfig, final NetworkConfig networkConfig)
        throws IOException {

    LOG.debug("clock drift detection: " + clockDriftConfig.toString());

    final InetAddress ntpServerAddress = InetAddress.getByName(clockDriftConfig.getServer());

    TimeInfo timeInfo;/*w  w w. j  a va2s  . c  om*/
    NTPUDPClient client = new NTPUDPClient();
    client.setDefaultTimeout(clockDriftConfig.getTimeout());
    client.open();
    LOG.debug("NTP server: " + ntpServerAddress);
    timeInfo = client.getTime(ntpServerAddress);
    client.close();
    timeInfo.computeDetails();
    return timeInfo;
}

From source file:experts.net.ip6.ULUA.java

/**
 * Obtain NTP time stamp value//from   ww  w . j  a  v  a2s  . c  o m
 *
 * @param address
 *            NTP server address
 * @return the current time of day in 64-bit NTP format
 * @throws SocketException
 *             If the socket could not be opened which it might be not available any ports.
 * @throws UnknownHostException
 *             If the host could not be found.
 * @throws IOException
 */
public static long obtainNTPTime(String address) throws SocketException, UnknownHostException, IOException {
    NTPUDPClient client = new NTPUDPClient();
    client.setVersion(NtpV3Packet.VERSION_4);

    // throws SocketException
    client.open();
    // throws UnknownHostException from InetAddress.getByName and IOException from client.getTime
    TimeInfo time = client.getTime(InetAddress.getByName(address));
    client.close();

    time.computeDetails();

    return time.getMessage().getTransmitTimeStamp().ntpValue();
}

From source file:amplify.NTPClient.java

public static void syncServerTime(String ntpServerAddress) throws IOException {
    NTPUDPClient client = new NTPUDPClient();

    // We want to timeout if a response takes longer than 10 seconds
    client.setDefaultTimeout(10000);/*from  w w w . j  av  a  2 s.  c om*/
    try {
        client.open();
        System.out.println();
        try {
            InetAddress hostAddr = InetAddress.getByName(ntpServerAddress);
            System.out.println("> " + hostAddr.getHostName() + "/" + hostAddr.getHostAddress());
            TimeInfo info = client.getTime(hostAddr);
            processResponse(info);
        } catch (IOException ioe) {
            client.close();
            throw ioe;
        }
    } catch (SocketException e) {
        client.close();
        throw e;
    }

    client.close();
}

From source file:flex.helpers.NTPHelper.java

/**
 * Solicitar hora y fecha a servidor NTP.
 * /* w  w w . ja  va2  s  . com*/
 * @param ntpServer Direccin ip del servidor NTP
 * @return
 * @throws NTPHelperException 
 */
public static Date getDateTime(String ntpServer) throws NTPHelperException {
    if (ntpServer == null)
        throw new NTPHelperException(NTPHelperException.ERROR_NTP_EMPTY);
    if (ntpServer.isEmpty())
        throw new NTPHelperException(NTPHelperException.ERROR_NTP_EMPTY);

    Date time = null;
    NTPUDPClient client = new NTPUDPClient();
    client.setDefaultTimeout(NTP_TIMEOUT);

    try {
        client.open();
        InetAddress hostAddr = InetAddress.getByName(ntpServer);
        TimeInfo info = client.getTime(hostAddr);
        time = processResponse(info);

    } catch (UnknownHostException ex) {
        throw new NTPHelperException(NTPHelperException.ERROR_NTP_UNKNOWN_HOST, ex.getCause());

    } catch (SocketException ex) {
        throw new NTPHelperException(NTPHelperException.ERROR_NTP_SOCKET, ex.getCause());

    } catch (IOException ex) {
        throw new NTPHelperException(NTPHelperException.ERROR_NTP_READ, ex.getCause());

    } finally {
        client.close();
        System.gc();
    }

    return time;
}

From source file:de.tud.kitchen.android.NTPTimeReceiver.java

@Override
protected Void doInBackground(InetAddress... params) {
    NTPUDPClient client = new NTPUDPClient();
    client.setDefaultTimeout(10000);/*from  www  .j  a va2 s .c o  m*/
    try {
        client.open();
    } catch (final SocketException se) {
        se.printStackTrace();
        return null;
    }
    while (!this.isCancelled()) {
        try {
            TimeInfo info = client.getTime(params[0]);
            info.computeDetails();
            Long offsetValue = info.getOffset();
            int receiverTimeDelta = (offsetValue == null) ? 0 : offsetValue.intValue();
            publishProgress(receiverTimeDelta);
        } catch (final IOException ioe) {
            ioe.printStackTrace();
            continue;
        }

        try {
            Thread.sleep(1000 * 60);
        } catch (InterruptedException e) {
            continue;
        }
    }
    client.close();
    return null;
}

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

private TimeInfo requestTime(String server, int timeout) {
    TimeInfo responseInfo = null;//from   w ww .j  a v  a2s.c  o  m
    NTPUDPClient client = new NTPUDPClient();
    client.setDefaultTimeout(timeout);
    try {
        client.open();
        try {
            InetAddress hostAddr = InetAddress.getByName(server);
            //                System.out.println("> " + hostAddr.getHostName() + "/"
            //                        + hostAddr.getHostAddress());
            details += "NTP server: " + hostAddr.getHostName() + "/" + hostAddr.getHostAddress();

            responseInfo = client.getTime(hostAddr);
        } catch (IOException ioe) {
            ioe.printStackTrace();
        }

    } catch (SocketException e) {
        e.printStackTrace();
    }

    client.close();
    return responseInfo;

}

From source file:edu.tcu.gaduo.ihe.iti.ct_transaction.service.NTPClient.java

public Date processResponse(String host) {

    TimeInfo info = null;//from   w  ww .ja  va  2  s  .c  o  m
    try {
        NTPUDPClient client = new NTPUDPClient();
        client.setDefaultTimeout(10000);
        client.open();
        InetAddress hostAddr = InetAddress.getByName(host);
        info = client.getTime(hostAddr);
        client.close();
    } catch (NullPointerException e) {
        logger.info(e.toString());
        return null;
    } catch (IOException e) {
        logger.info(e.toString());
        e.printStackTrace();
        return null;
    }

    message = info.getMessage();
    stratum = message.getStratum(); // 
    if (stratum <= 0)
        refType = "(??)";
    else if (stratum == 1)
        refType = "(??; e.g., GPS)"; // GPS, radio clock,
    else
        refType = "(??; e.g. via NTP or SNTP)";
    // stratum should be 0..15...
    logger.info(" Stratum: " + stratum + " " + refType);

    this.setRefNtpTime(message.getReferenceTimeStamp());

    // Originate Time is time request sent by client (t1)
    this.setOrigNtpTime(message.getOriginateTimeStamp());
    // Receive Time is time request received by server (t2)
    this.setRcvNtpTime(message.getReceiveTimeStamp());
    // Transmit time is time reply sent by server (t3)
    this.setXmitNtpTime(message.getTransmitTimeStamp());
    // Destination time is time reply received by client (t4)
    long destTime = info.getReturnTime();
    this.setDestNtpTime(TimeStamp.getNtpTime(destTime));

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

    Date Date = message.getReferenceTimeStamp().getDate();
    return Date;
}

From source file:com.blockwithme.time.internal.NTPClockSynchronizer.java

@Override
public long getLocalToUTCTimeOffset() throws Exception {
    final NTPUDPClient client = new NTPUDPClient();
    //      final Calendar cal = Calendar.getInstance(DEFAULT_LOCAL);
    // We want to timeout if a response takes longer than 3 seconds
    client.setDefaultTimeout(TIMEOUT);
    long offsetSum = 0L;
    int offsetCount = 0;
    long bestDelay = Long.MAX_VALUE;
    long bestOffset = Long.MAX_VALUE;
    Throwable lastException = null;
    try {// www.ja  va 2s  .  c  o  m
        client.open();
        for (int i = 0; i < ntpPool.length; i++) {
            try {
                final InetAddress hostAddr = InetAddress.getByName(ntpPool[i]);
                final TimeInfo info = client.getTime(hostAddr);
                info.computeDetails();
                final Long offsetValue = info.getOffset();
                final Long delayValue = info.getDelay();
                if ((delayValue != null) && (offsetValue != null)) {
                    //                      cal.setTimeInMillis(offsetValue
                    //                              + System.currentTimeMillis());
                    //                      final long local2UTC = -(cal.get(Calendar.ZONE_OFFSET) + cal
                    //                              .get(Calendar.DST_OFFSET));
                    if (delayValue <= 100L) {
                        offsetSum += offsetValue;// + local2UTC;
                        offsetCount++;
                    }
                    if (delayValue < bestDelay) {
                        bestDelay = delayValue;
                        bestOffset = offsetValue;// + local2UTC;
                    }
                }
            } catch (final Throwable t) {
                LOG.error("Error reading tiem through NTP", t);
                lastException = t;
            }
        }
    } catch (final Throwable t) {
        LOG.error("Error reading tiem through NTP", t);
        lastException = t;
        // NTPUDPClient can't even open at all!?!
    } finally {
        client.close();
    }
    if (offsetCount > 0) {
        return offsetSum / offsetCount;
    }
    // OK, not good result. Any result at all?
    if (bestDelay != Long.MAX_VALUE) {
        return bestOffset;
    }
    // FAIL!
    throw new Exception("Failed to get NTP time", lastException);
}

From source file:ntp.NTPClient.java

public static void main(String[] args) {
    Properties defaultProps = System.getProperties(); //obtiene las "properties" del sistema
    defaultProps.put("java.net.preferIPv6Addresses", "true");//mapea el valor true en la variable java.net.preferIPv6Addresses
    if (args.length == 0) {
        System.err.println("Usage: NTPClient <hostname-or-address-list>");
        System.exit(1);/*from  w  w  w . j a  va2s.co m*/
    }

    Promedio = 0;
    Cant = 0;
    NTPUDPClient client = new NTPUDPClient();
    // We want to timeout if a response takes longer than 10 seconds
    client.setDefaultTimeout(10000);
    try {
        client.open();
        for (String arg : args) {
            System.out.println();
            try {
                InetAddress hostAddr = InetAddress.getByName(arg);
                System.out.println("> " + hostAddr.getHostName() + "/" + hostAddr.getHostAddress());
                TimeInfo info = client.getTime(hostAddr);
                processResponse(info);
            } catch (IOException ioe) {
                System.err.println(ioe.toString());
            }
        }
    } catch (SocketException e) {
        System.err.println(e.toString());
    }

    client.close();
    System.out.println("\n Pomedio " + (Promedio / Cant));
}