初識(shí)Daytime協(xié)議
不知道大家是否知道這樣一個(gè)協(xié)議,它是掌控日期查詢等內(nèi)容的。那么現(xiàn)在我們就具體來了解一下Daytime協(xié)議吧。英文原義:Daytime Protocol,中文釋義:日期查詢協(xié)議。注解:這種時(shí)間傳輸協(xié)議廣泛的被運(yùn)行MS-DOS和類似的操作系統(tǒng)的小型計(jì)算機(jī)使用,該協(xié)議不指定固定的傳輸格式,只要求按照ASCII標(biāo)準(zhǔn)發(fā)送數(shù)據(jù).
Daytime協(xié)議(RFC867 Daytime Protocol)
本RFC規(guī)范了一個(gè)ARPA Internet community上的標(biāo)準(zhǔn).在ARPA Internet上的所有主機(jī)應(yīng)當(dāng)采用和實(shí)現(xiàn)這個(gè)標(biāo)準(zhǔn).
一個(gè)有用的測(cè)量和調(diào)試工具就是daytime服務(wù).它的作用就是返回當(dāng)前時(shí)間和日期,格式是字符串格式.
* 基于TCP的daytime服務(wù)
daytime服務(wù)是基于TCP的應(yīng)用,服務(wù)器在TCP端口13偵聽,一旦有連接建立就返回ASCII形式的日期和時(shí)間(接收到的任何數(shù)據(jù)被忽略),在傳送完后關(guān)閉連接.
* 基于UDP的daytime服務(wù)
daytime服務(wù)也可以使用UDP協(xié)議,它的端口也是13,不過UDP是用數(shù)據(jù)報(bào)傳送當(dāng)前時(shí)間的.接收到的數(shù)據(jù)被忽略.
* Daytime協(xié)議的格式
對(duì)于daytime沒有特定的格式,建議使用ASCII可打印字符,空格和回車換行符.daytime應(yīng)該在一行上.
下面是兩種流行的格式:
一種流行的格式是:Weekday, Month Day, Year Time-Zone
例子:Tuesday, February 22, 1982 17:37:43-PST
另一種流行的格式用于SMTP中:dd mmm yy hh:mm:ss zzz
例子:02 FEB 82 07:59:01 PST
注意:對(duì)于機(jī)器來說,有用的時(shí)間采用了時(shí)間協(xié)議(Time Protocol RFC-868)
接下來我們用VB程序?qū)崿F(xiàn)通過RFC867協(xié)議設(shè)置我們自己的計(jì)算機(jī)系統(tǒng)時(shí)間,為使程序簡(jiǎn)化,程序未進(jìn)行日期校正,只進(jìn)行時(shí)間校正.在FORM1中添加1個(gè)Winsock控件,將下面代碼剪貼到FORM1的代碼窗體中即可:
Option Explicit
'采用RFC867 Daytime協(xié)議獲取標(biāo)準(zhǔn)時(shí)間例程
'www.time.ac.cn為中科院國(guó)家授時(shí)中心,采用北京時(shí)間
'時(shí)間格式:Mon Jul 26 09:58:57 2004
'time.nist.gov為美國(guó)標(biāo)準(zhǔn)技術(shù)院,采用格靈威時(shí)間
'時(shí)間格式:53212 04-07-26 02:00:12 50 0 0 488.3 UTC(NIST) *
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)