Visual C# UDP網(wǎng)間時(shí)間系統(tǒng)的介紹
前面我們對Visual C# UDP協(xié)議的收發(fā)實(shí)現(xiàn)進(jìn)行了具體的講述,那么對于類的使用,不知道大家是否已經(jīng)清楚了。這里我們再來主要分析一下Visual C# UDP協(xié)議的網(wǎng)絡(luò)對時(shí)間系統(tǒng)的體系結(jié)構(gòu)和功能。
Visual C# UDP協(xié)議的實(shí)現(xiàn)之網(wǎng)絡(luò)對時(shí)間系統(tǒng)的體系結(jié)構(gòu)及功能簡介:
在局域網(wǎng)中有很多應(yīng)用軟件為了協(xié)同工作,需要保證客戶機(jī)上時(shí)間統(tǒng)一,而為了實(shí)現(xiàn)這一點(diǎn),通常的做法是客戶機(jī)從一個(gè)時(shí)間相對正確的服務(wù)器讀取時(shí)間,以此來校正本地時(shí)間。如經(jīng)??吹降腉PS對時(shí)系統(tǒng)等。本節(jié)編寫的局域網(wǎng)上對時(shí)系統(tǒng)的主要的功能是保證局域網(wǎng)上計(jì)算機(jī)時(shí)間、日期的統(tǒng)一。網(wǎng)絡(luò)對時(shí)程序是體系結(jié)構(gòu)分成服務(wù)器端程序和客戶端程序二個(gè)部分,具體的作法是:在同一個(gè)網(wǎng)段上,固定一臺(tái)計(jì)算機(jī)作為對時(shí)的服務(wù)器,在這個(gè)網(wǎng)段的所有計(jì)算機(jī)都可以讀取這臺(tái)服務(wù)器上的時(shí)間和日期,并依此服務(wù)器上的時(shí)間和日期為基準(zhǔn),來確定本地的時(shí)間和日期。在服務(wù)器端程序需要達(dá)到以下功能:
能夠接收局域網(wǎng)中任一臺(tái)客戶機(jī)的請求
記錄請求客戶機(jī)的計(jì)算機(jī)名稱,和請求時(shí)間
準(zhǔn)確發(fā)送服務(wù)器端的時(shí)間和日期
端程序要達(dá)到以下功能:
能夠設(shè)定服務(wù)器的主機(jī)或者IP地址
能夠接收服務(wù)器端發(fā)送的時(shí)間、日期信息
能夠以接收的服務(wù)器端時(shí)間、日期為基準(zhǔn),校正本地時(shí)間
因此在具體用Visual C# UDP實(shí)現(xiàn)網(wǎng)絡(luò)對時(shí)系統(tǒng)時(shí)就包括二個(gè)部分:服務(wù)器端程序和客戶端程序。下面首先介紹Visual C#實(shí)現(xiàn)網(wǎng)絡(luò)對時(shí)系統(tǒng)中服務(wù)器端程序的具體步驟。
Visual C# UDP實(shí)現(xiàn)網(wǎng)絡(luò)對時(shí)系統(tǒng)之服務(wù)器端程序的具體步驟:
服務(wù)器端程序比客戶端程序相對要簡單,主要因是服務(wù)器端程序的工作比較簡單,就
是接收客戶端的對時(shí)請求、發(fā)送服務(wù)器端的時(shí)間數(shù)據(jù)。而于客戶端不僅要傳送和接收數(shù)據(jù),還要把服務(wù)器端的時(shí)間提取出來,并以此來修改本地計(jì)算機(jī)的時(shí)間、日期。下面是用Visual C#實(shí)現(xiàn)網(wǎng)絡(luò)對時(shí)系統(tǒng)之服務(wù)器端程序的具體步驟步驟。
1.啟動(dòng)Visual Studio .Net。
2.選擇菜單【文件】|【新建】|【項(xiàng)目】后,彈出【新建項(xiàng)目】對話框。
3.將【項(xiàng)目類型】設(shè)置為【Visual C#項(xiàng)目】。
4.將【模板】設(shè)置為【W(wǎng)indows應(yīng)用程序】。
5.在【名稱】文本框中輸入【UDP對時(shí)服務(wù)器端】。
6.在【位置】的文本框中輸入【E:\VS.NET項(xiàng)目】,然后單擊【確定】按鈕
7.在【解決方案資源管理器】窗口中,雙擊Form1.cs文件,進(jìn)入Form1.cs文件的編輯界面。
8.在Form1.cs文件的開頭,用下列導(dǎo)入命名空間代碼替代系統(tǒng)缺省的導(dǎo)入命名空間代碼。
- using System ;
- using System.Drawing ;
- using System.Collections ;
- using System.ComponentModel ;
- using System.Windows.Forms ;
- using System.Data ;
- usi