Class SimpleNTPServer
- java.lang.Object
-
- org.apache.commons.net.examples.ntp.SimpleNTPServer
-
- All Implemented Interfaces:
java.lang.Runnable
public class SimpleNTPServer extends java.lang.Object implements java.lang.RunnableThe 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 SimpleNTPServer()Creates SimpleNTPServer listening on default NTP port.SimpleNTPServer(int port)Creates SimpleNTPServer.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidconnect()Connects to server socket and listen for client connections.intgetPort()protected voidhandlePacket(java.net.DatagramPacket request, long rcvTime)Handles incoming packet.booleanisRunning()Returns state of whether time service is running.booleanisStarted()Returns state of whether time service is running.static voidmain(java.lang.String[] args)voidrun()Main method to service client connections.voidstart()Starts time service and provide time to client connections.voidstop()Closes server socket and stop listening.
-
-
-
Constructor Detail
-
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, orzerofor a system selected free port.- Throws:
java.lang.IllegalArgumentException- if port number less than 0
-
-
Method Detail
-
getPort
public int getPort()
-
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
-
connect
public void connect() throws java.io.IOExceptionConnects to server socket and listen for client connections.- Throws:
java.io.IOException- if an I/O error occurs when creating the socket.
-
start
public void start() throws java.io.IOExceptionStarts time service and provide time to client connections.- Throws:
java.io.IOException- if an I/O error occurs when creating the socket.
-
run
public void run()
Main method to service client connections.- Specified by:
runin interfacejava.lang.Runnable
-
handlePacket
protected void handlePacket(java.net.DatagramPacket request, long rcvTime) throws java.io.IOExceptionHandles incoming packet. If NTP packet is client-mode then respond to that host with a NTP response packet otherwise ignore.- Parameters:
request- incoming DatagramPacketrcvTime- time packet received- Throws:
java.io.IOException- if an I/O error occurs.
-
stop
public void stop()
Closes server socket and stop listening.
-
main
public static void main(java.lang.String[] args)
-
-