Package examples.ntp
Class SimpleNTPServer
java.lang.Object
examples.ntp.SimpleNTPServer
- All Implemented Interfaces:
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
ConstructorsConstructorDescriptionCreate SimpleNTPServer listening on default NTP port.SimpleNTPServer(int port) Create SimpleNTPServer. -
Method Summary
Modifier and TypeMethodDescriptionvoidconnect()Connect to server socket and listen for client connections.intgetPort()protected voidhandlePacket(DatagramPacket request, long rcvTime) Handle incoming packet.booleanReturn state of whether time service is running.booleanReturn state of whether time service is running.static voidvoidrun()main thread to service client connections.voidstart()Start time service and provide time to client connections.voidstop()Close server socket and stop listening.
-
Constructor Details
-
SimpleNTPServer
public SimpleNTPServer()Create SimpleNTPServer listening on default NTP port. -
SimpleNTPServer
Create SimpleNTPServer.- Parameters:
port- the local port the server socket is bound to, orzerofor a system selected free port.- Throws:
IllegalArgumentException- if port number less than 0
-
-
Method Details
-
getPort
-
isRunning
Return state of whether time service is running.- Returns:
- true if time service is running
-
isStarted
Return state of whether time service is running.- Returns:
- true if time service is running
-
connect
Connect to server socket and listen for client connections.- Throws:
IOException- if an I/O error occurs when creating the socket.
-
start
Start time service and provide time to client connections.- Throws:
IOException- if an I/O error occurs when creating the socket.
-
run
main thread to service client connections. -
handlePacket
Handle 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:
IOException- if an I/O error occurs.
-
stop
Close server socket and stop listening. -
main
-