Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.apache.commons.net.ntp;
  /*
   * Licensed to the Apache Software Foundation (ASF) under one or more
   * contributor license agreements.  See the NOTICE file distributed with
   * this work for additional information regarding copyright ownership.
   * The ASF licenses this file to You under the Apache License, Version 2.0
   * (the "License"); you may not use this file except in compliance with
   * the License.  You may obtain a copy of the License at
   *
  *      http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 
 
 
 import  org.apache.commons.net.DatagramSocketClient;

The NTPUDPClient class is a UDP implementation of a client for the Network Time Protocol (NTP) described in RFC 1305 as well as the Simple Network Time Protocol (SNTP) in RFC-2030. To use the class, merely open a local datagram socket with open and call getTime to retrieve the time. Then call close to close the connection properly. Successive calls to getTime are permitted without re-establishing a connection. That is because UDP is a connectionless protocol and the Network Time Protocol is stateless.

Author(s):
Jason Mathews, MITRE Corp
Version:
$Revision: 1299238 $
 
 
 public final class NTPUDPClient extends DatagramSocketClient
 {
    
The default NTP port. It is set to 123 according to RFC 1305. *
 
     public static final int DEFAULT_PORT = 123;
 
     private int _version = .;

    
Retrieves the time information from the specified server and port and returns it. The time is the number of miliiseconds since 00:00 (midnight) 1 January 1900 UTC, as specified by RFC 1305. This method reads the raw NTP packet and constructs a TimeInfo object that allows access to all the fields of the NTP message header.

Parameters:
host The address of the server.
port The port of the service.
Returns:
The time value retrieved from the server.
Throws:
IOException If an error occurs while retrieving the time.
 
     public TimeInfo getTime(InetAddress hostint portthrows IOException
     {
         // if not connected then open to next available UDP port
         if (!isOpen())
         {
             open();
         }
 
         NtpV3Packet message = new NtpV3Impl();
         message.setMode(.);
         message.setVersion();
         DatagramPacket sendPacket = message.getDatagramPacket();
         sendPacket.setAddress(host);
         sendPacket.setPort(port);
 
         NtpV3Packet recMessage = new NtpV3Impl();
         DatagramPacket receivePacket = recMessage.getDatagramPacket();
 
         /*
          * Must minimize the time between getting the current time,
          * timestamping the packet, and sending it out which
          * introduces an error in the delay time.
          * No extraneous logging and initializations here !!!
          */
         TimeStamp now = TimeStamp.getCurrentTime();
 
         // Note that if you do not set the transmit time field then originating time
         // in server response is all 0's which is "Thu Feb 07 01:28:16 EST 2036".
         message.setTransmitTime(now);
 
         _socket_.send(sendPacket);
         _socket_.receive(receivePacket);
 
         long returnTime = System.currentTimeMillis();
         // create TimeInfo message container but don't pre-compute the details yet
         TimeInfo info = new TimeInfo(recMessagereturnTimefalse);
 
         return info;
     }

    
Retrieves the time information from the specified server on the default NTP port and returns it. The time is the number of miliiseconds since 00:00 (midnight) 1 January 1900 UTC, as specified by RFC 1305. This method reads the raw NTP packet and constructs a TimeInfo object that allows access to all the fields of the NTP message header.

Parameters:
host The address of the server.
Returns:
The time value retrieved from the server.
Throws:
IOException If an error occurs while retrieving the time.
    public TimeInfo getTime(InetAddress hostthrows IOException
    {
        return getTime(host.);
    }

    
Returns the NTP protocol version number that client sets on request packet that is sent to remote host (e.g. 3=NTP v3, 4=NTP v4, etc.)

Returns:
the NTP protocol version number that client sets on request packet.
See also:
setVersion(int)
    public int getVersion()
    {
        return ;
    }

    
Sets the NTP protocol version number that client sets on request packet communicate with remote host.

Parameters:
version the NTP protocol version number
    public void setVersion(int version)
    {
         = version;
    }
New to GrepCode? Check out our FAQ X