Class SimpleNTPServer

java.lang.Object
org.apache.commons.net.examples.ntp.SimpleNTPServer
All Implemented Interfaces:
Runnable

public class SimpleNTPServer extends Object implements Runnable
The SimpleNTPServer class is a UDP implementation of a server for the Network Time Protocol (NTP) version 3 as described in RFC 1305. It is a minimal NTP server that doesn't actually adjust the time but only responds to NTP datagram requests with response sent back to originating host with info filled out using the current clock time. To be used for debugging or testing. To prevent this from interfering with the actual NTP service it can be run from any local port.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Creates SimpleNTPServer listening on default NTP port.
    SimpleNTPServer(int port)
    Creates SimpleNTPServer.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Connects to server socket and listen for client connections.
    int
     
    protected void
    handlePacket(DatagramPacket request, long rcvTime)
    Handles incoming packet.
    boolean
    Returns state of whether time service is running.
    boolean
    Returns state of whether time service is running.
    static void
    main(String[] args)
     
    void
    run()
    Main method to service client connections.
    void
    Starts time service and provide time to client connections.
    void
    Closes server socket and stop listening.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • SimpleNTPServer

      public SimpleNTPServer()
      Creates SimpleNTPServer listening on default NTP port.
    • SimpleNTPServer

      public SimpleNTPServer(int port)
      Creates SimpleNTPServer.
      Parameters:
      port - the local port the server socket is bound to, or zero for a system selected free port.
      Throws:
      IllegalArgumentException - if port number less than 0
  • Method Details

    • main

      public static void main(String[] args)
    • connect

      public void connect() throws IOException
      Connects to server socket and listen for client connections.
      Throws:
      IOException - if an I/O error occurs when creating the socket.
    • getPort

      public int getPort()
    • handlePacket

      protected void handlePacket(DatagramPacket request, long rcvTime) throws IOException
      Handles incoming packet. If NTP packet is client-mode then respond to that host with a NTP response packet otherwise ignore.
      Parameters:
      request - incoming DatagramPacket
      rcvTime - time packet received
      Throws:
      IOException - if an I/O error occurs.
    • isRunning

      public boolean isRunning()
      Returns state of whether time service is running.
      Returns:
      true if time service is running
    • isStarted

      public boolean isStarted()
      Returns state of whether time service is running.
      Returns:
      true if time service is running
    • run

      public void run()
      Main method to service client connections.
      Specified by:
      run in interface Runnable
    • start

      public void start() throws IOException
      Starts time service and provide time to client connections.
      Throws:
      IOException - if an I/O error occurs when creating the socket.
    • stop

      public void stop()
      Closes server socket and stop listening.