Tcl
Tcl
Get Current Date/Time from NIST Time Server
See more Socket/SSL/TLS Examples
Demonstrates using Chilkat Socket to connect to an NIST time server and (using the old Time Protocol (RFC 868)), will read the current GMT time.Note: This is not necessarily the very best means for getting the current date/time. The most commonly used time protocol is the Network Time Protocol (RFC-1305).
Chilkat Tcl Downloads
load ./chilkat.dll
set success 0
# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
set socket [new_CkSocket]
# Connect to an NIST time server and read the current date/time
set maxWaitMs 4000
set useTls 0
set success [CkSocket_Connect $socket "time-c.nist.gov" 37 $useTls $maxWaitMs]
if {$success != 1} then {
puts [CkSocket_lastErrorText $socket]
delete_CkSocket $socket
exit
}
# The time server will send a big-endian 32-bit integer representing
# the number of seconds since since 00:00 (midnight) 1 January 1900 GMT.
# The ReceiveInt32 method will receive a 4-byte integer, but returns
# 1 or 0 to indicate success. If successful, the integer
# is obtained via the ReceivedInt property.
set bigEndian 1
set success [CkSocket_ReceiveInt32 $socket $bigEndian]
if {$success != 1} then {
puts [CkSocket_lastErrorText $socket]
delete_CkSocket $socket
exit
}
set dt [new_CkDateTime]
CkDateTime_SetFromNtpTime $dt [CkSocket_get_ReceivedInt $socket]
# Show the current local date/time
set bLocalTime 1
puts "Current local date/time: [CkDateTime_getAsRfc822 $dt $bLocalTime]"
set maxWaitMs 10
CkSocket_Close $socket $maxWaitMs
delete_CkSocket $socket
delete_CkDateTime $dt