ntp_time - Tcl Time Service Client
Contents
Bugs, Ideas, Feedback
This document, and the package it describes, will undoubtedly contain bugs and other problems. Please
report such in the category ntp of the TcllibTrackers [http://core.tcl.tk/tcllib/reportlist]. Please
also report any ideas for enhancements you may have for either package and/or documentation.
When proposing code changes, please provide unifieddiffs, i.e the output of diff-u.
Note further that attachments are strongly preferred over inlined patches. Attachments can be made by
going to the Edit form of the ticket immediately after its creation, and then using the left-most button
in the secondary navigation bar.
Category
Networking
Commands
::time::gettime ?options? timeserver ?port?
Get the time from timeserver. You may specify any of the options listed for the configure command
here. This command returns a token which must then be used with the remaining commands in this
package. Once you have finished, you should use cleanup to release all resources. The default port
is 37.
::time::getsntp ?options? timeserver ?port?
Get the time from an SNTP server. This accepts exactly the same arguments as ::time::gettime
except that the default port is 123. The result is a token as per ::time::gettime and should be
handled in the same way.
Note that it is unlikely that any SNTP server will reply using tcp so you will require the tcludp
or the ceptcl package. If a suitable package can be loaded then the udp protocol will be used by
default.
::time::configure ?options?
Called with no arguments this command returns all the current configuration options and values.
Otherwise it should be called with pairs of option name and value.
-protocolnumber
Set the default network protocol. This defaults to udp if the tcludp package is available.
Otherwise it will use tcp.
-portnumber
Set the default port to use. RFC 868 uses port 37, RFC 2030 uses port 123.
-timeoutnumber
Set the default timeout value in milliseconds. The default is 10 seconds.
-commandnumber
Set a command procedure to be run when a reply is received. The procedure is called with
the time token appended to the argument list.
-loglevelnumber
Set the logging level. The default is 'warning'.
::time::cgetname
Get the current value for the named configuration option.
::time::unixtimetoken
Format the returned time for the unix epoch. RFC 868 time defines time 0 as 1 Jan 1900, while unix
time defines time 0 as 1 Jan 1970. This command converts the reply to unix time.
::time::statustoken
Returns the status flag. For a successfully completed query this will be ok. May be error or
timeout or eof. See also ::time::error::time::errortoken
Returns the error message provided for requests whose status is error. If there is no error
message then an empty string is returned.
::time::resettoken?reason?
Reset or cancel the query optionally specfying the reason to record for the error command.
::time::waittoken
Wait for a query to complete and return the status upon completion.
::time::cleanuptoken
Remove all state variables associated with the request.
% set tok [::time::gettime ntp2a.mcc.ac.uk]
% set t [::time::unixtime $tok]
% ::time::cleanup $tok
% set tok [::time::getsntp pool.ntp.org]
% set t [::time::unixtime $tok]
% ::time::cleanup $tok
proc on_time {token} {
if {[time::status $token] eq "ok"} {
puts [clock format [time::unixtime $token]]
} else {
puts [time::error $token]
}
time::cleanup $token
}
time::getsntp -command on_time pool.ntp.org
Copyright
Copyright (c) 2002, Pat Thoyts <patthoyts@users.sourceforge.net>
tcllib 1.2.2 ntp_time(3tcl)
Description
This package implements a client for the RFC 868 TIME protocol (http://www.rfc-editor.org/rfc/rfc868.txt)
and also a minimal client for the RFC 2030 Simple Network Time Protocol (http://www.rfc-editor.org/rfc/rfc2030.txt). RFC 868 returns the time in seconds since 1 January 1900 to either tcp or
udp clients. RFC 2030 also gives this time but also provides a fractional part which is not used in this
client.
Keywords
NTP, SNTP, rfc 2030, rfc 868, time
Name
ntp_time - Tcl Time Service Client
See Also
ntp
Synopsis
package require Tcl8.59
package require time?1.2.2?::time::gettime ?options? timeserver ?port?
::time::getsntp ?options? timeserver ?port?
::time::configure ?options?
::time::cgetname::time::unixtimetoken::time::statustoken::time::errortoken::time::resettoken?reason?::time::waittoken::time::cleanuptoken
________________________________________________________________________________________________________________
