DataFlex
DataFlex
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 DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoSocket
Integer iMaxWaitMs
Boolean iUseTls
Boolean iBigEndian
Handle hoDt
Boolean iBLocalTime
String sTemp1
Integer iTemp1
Move False To iSuccess
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
Get Create (RefClass(cComChilkatSocket)) To hoSocket
If (Not(IsComObjectCreated(hoSocket))) Begin
Send CreateComObject of hoSocket
End
// Connect to an NIST time server and read the current date/time
Move 4000 To iMaxWaitMs
Move False To iUseTls
Get ComConnect Of hoSocket "time-c.nist.gov" 37 iUseTls iMaxWaitMs To iSuccess
If (iSuccess <> True) Begin
Get ComLastErrorText Of hoSocket To sTemp1
Showln sTemp1
Procedure_Return
End
// 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
// True or False to indicate success. If successful, the integer
// is obtained via the ReceivedInt property.
Move True To iBigEndian
Get ComReceiveInt32 Of hoSocket iBigEndian To iSuccess
If (iSuccess <> True) Begin
Get ComLastErrorText Of hoSocket To sTemp1
Showln sTemp1
Procedure_Return
End
Get Create (RefClass(cComCkDateTime)) To hoDt
If (Not(IsComObjectCreated(hoDt))) Begin
Send CreateComObject of hoDt
End
Get ComReceivedInt Of hoSocket To iTemp1
Get ComSetFromNtpTime Of hoDt iTemp1 To iSuccess
// Show the current local date/time
Move True To iBLocalTime
Get ComGetAsRfc822 Of hoDt iBLocalTime To sTemp1
Showln "Current local date/time: " sTemp1
Move 10 To iMaxWaitMs
Get ComClose Of hoSocket iMaxWaitMs To iSuccess
End_Procedure