国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

局域網(wǎng)時間同步系統(tǒng)設計與實現(xiàn)

2013-04-29 22:33:05胡紹波
計算機時代 2013年6期
關鍵詞:系統(tǒng)設計

胡紹波

摘 要: 目前很多軟件系統(tǒng)都是基于網(wǎng)絡環(huán)境的,擁有統(tǒng)一的時間是許多分布式軟件應用的前提,但是這些軟件系統(tǒng)并沒有提供同步各計算機系統(tǒng)時間的功能。為此,探討了Windows環(huán)境下局域網(wǎng)系統(tǒng)時間同步的相關設計模型,介紹了系統(tǒng)的開發(fā)原理、設計思想和具體實現(xiàn),給出了主要的程序代碼。該系統(tǒng)的開發(fā),解決了實際工作中局域網(wǎng)計算機時間同步的問題,達到了預期的效果。

關鍵詞: 時間同步; 系統(tǒng)設計; 系統(tǒng)實現(xiàn); Socket

中圖分類號:TP3 文獻標志碼:B 文章編號:1006-8228(2013)06-45-02

Design and implementation of time-synchronization system for LAN

Hu Shaobo

(Kunming Branch of the People's Bank of China, Kunming, Yunnan 650021, China)

Abstract: Since many software systems are based on the network environment, a unified time is the premise of many distributed software applications. However these software usually do not provide the synchronization function of computer system time. Therefore, the design model of time-synchronization system for LAN based on Windows is discussed. The principles of system development and design ideas are introduced, and the main program code is given. The problem of the LAN computer time synchronization is overcome by development of the system in practice, which achieves the desired effects.

Key words: time-synchronization; system design; system implementation; Socket

0 引言

隨著計算機網(wǎng)絡應用范圍的不斷擴大,對網(wǎng)絡設備及網(wǎng)絡應用的時間同步提出了越來越高的要求,擁有一個精準的時間同步機制是許多分布式應用的前提[1]。目前大部分軟件系統(tǒng)均是基于網(wǎng)絡環(huán)境的,但是相當數(shù)量的軟件系統(tǒng),并未具有與各計算機系統(tǒng)的時間同步功能,通常是利用操作系統(tǒng)的時間同步功能進行時間同步,步驟繁瑣[2]。如果人工修改各計算機時間,不但費時,而且很難做到精準。為此,開發(fā)一個能同步局域網(wǎng)內(nèi)各指定計算機時間的軟件系統(tǒng)是很有意義的。

1 系統(tǒng)功能

該系統(tǒng)的主要功能是以局域網(wǎng)中某一臺計算機(客戶端)的時間為基準,將局域網(wǎng)中計算機時間統(tǒng)一為該指定的計算機時間,從而實現(xiàn)局域網(wǎng)內(nèi)計算機時間的同步,保證其他應用軟件數(shù)據(jù)采集的正確性。

1.1 系統(tǒng)用例圖

該系統(tǒng)的用例圖,如圖1所示。

[設置需同步時間的計算機網(wǎng)絡端口] [管理需同步時間的計算機網(wǎng)絡地址] [系統(tǒng)管理員][啟動系統(tǒng)時間同步服務] [同步系統(tǒng)時間]

圖1 系統(tǒng)用例圖

1.2 系統(tǒng)界面

該系統(tǒng)的時間同步服務器和客戶端界面如圖2、圖3所示。

圖2 時間同步服務器界面

圖3 系統(tǒng)時間同步客戶端界面

2 系統(tǒng)設計

系統(tǒng)采用C/S架構(gòu),服務器端提供設置同步時間服務所對應的網(wǎng)絡端口,啟動系統(tǒng)時間同步服務和接收同步時間請求的功能;客戶端提供管理需同步時間的計算機網(wǎng)絡地址和對應的服務端口的功能。

同步時間的具體處理流程如圖4、圖5所示。

圖4 服務器端處理流程

圖5 客戶端處理流程

3 系統(tǒng)關鍵功能實現(xiàn)

3.1 系統(tǒng)開發(fā)環(huán)境

該系統(tǒng)的開發(fā)環(huán)境為:Microsoft Visual Studio 2010+Windows 7。

3.2 系統(tǒng)實現(xiàn)關鍵代碼

3.2.1 系統(tǒng)時間的獲取和設置

系統(tǒng)實現(xiàn)中通過調(diào)用系統(tǒng)API函數(shù)對系統(tǒng)時間進行操作,核心代碼如下:

//系統(tǒng)時間的獲取與設置操作類,調(diào)用API函數(shù)

public class TimeOperate

{ [DllImport("Kernel32.dll")]

public static extern void GetLocalTime (SystemTime sysTime);

//獲取系統(tǒng)時間

[DllImport("Kernel32.dll")]

public static extern bool SetLocalTime (SystemTime sysTime);

//設置系統(tǒng)時間

}

3.2.2 系統(tǒng)時間與數(shù)據(jù)流的轉(zhuǎn)換

系統(tǒng)實現(xiàn)中將獲取到的系統(tǒng)時間對象進行序列化后通過網(wǎng)絡進行傳輸,當服務器收到后再將其進行反序列化,得到時間對象。序列化和反序列化操作的主要代碼如下:

//序列化操作:將系統(tǒng)時間對象轉(zhuǎn)換為數(shù)據(jù)流

private byte[] TimeToStream(SystemTime st)

{ MemoryStream ms=new MemoryStream();

BinaryFormatter formatter=new BinaryFormatter();

formatter.Serialize(ms, st);

return ms.ToArray();

}

//反序列化操作:將數(shù)據(jù)流轉(zhuǎn)換為時間對象

private SystemTime StreamToTime(byte[] stream)

{ SystemTime st;

MemoryStream ms=new MemoryStream(stream);

BinaryFormatter bf=new BinaryFormatter();

st=(SystemTime)bf.Deserialize(ms);

return st;

}

3.2.3 時間同步服務監(jiān)聽器的建立

系統(tǒng)中服務器與客戶端之間通訊使用.NET Framework提供的Sockets進行通訊[3-5]。

服務器端建立時間同步服務器監(jiān)聽器,監(jiān)聽客戶端請求。核心代碼如下:

private IPAddress ipAddress; //綁定時間同步服務的IP地址

private int intPort; //綁定時間同步服務的端口號

private Socket listenerSocket; //時間同步服務的監(jiān)聽器

//時間同步服務監(jiān)聽過程

public void BeginListen()

{ IPEndPoint ipe=new IPEndPoint(ipAddress, intPort);

listenerSocket=new Socket(AddressFamily.InterNetwork,

SocketType.Stream, ProtocolType.Tcp);

listenerSocket.Bind(ipe);

listenerSocket.Listen(0); //開時監(jiān)聽服務

while (true) //循環(huán)監(jiān)聽

{ Socket temp=listenerSocket.Accept(); //接受客戶端的請求

if (temp != null) //如果有連接請求

{ byte[] stream=new byte[1024];

temp.Receive(stream, stream.Length, 0);

//從客戶端接收客戶端的當前時間

SystemTime st=StreamToTime(stream);

//將網(wǎng)絡數(shù)據(jù)流反序列化為系統(tǒng)時間對象

TimeOperate.SetLocalTime(st);

//根據(jù)客戶端系統(tǒng)時間設置本計算機的系統(tǒng)時間

temp.Close();

}

}

}

3.2.4 客戶端連接服務器

該部分完成客戶端發(fā)起連接服務器的請求,將客戶端當期系統(tǒng)時間發(fā)送到服務器。該部分主要通過Socket類的Send方法完成操作,實現(xiàn)較為簡單,代碼略。

4 結(jié)束語

該系統(tǒng)的開發(fā)源于實際工作的需要,解決實際工作中局域網(wǎng)計算機同步時間的問題。系統(tǒng)提供一鍵式同步局域網(wǎng)計算機系統(tǒng)時間的功能,操作方便,不需要用戶對計算機進行其余配置,極大地減少了用戶的工作負擔。但是,該系統(tǒng)仍然存在兩方面的不足:一是實現(xiàn)中并未考慮到網(wǎng)絡傳輸時延對時間同步精度的影響;二是系統(tǒng)的實現(xiàn)是基于Windows系統(tǒng)的,目前尚不支持非Windows系統(tǒng)的時間同步。以上問題需進一步完善和研究。

參考文獻:

[1] 劉愛東等.一種基于通用PC的局域網(wǎng)時間同步方法[J].科學技術與

工程,2012.12(28):7434-7438

[2] 趙勇等.時間同步服務器在中、小型局域網(wǎng)中的應用[N].科技創(chuàng)新導

報,2010.26:29

[3] 許毅,馮山.使用C#語言進行多線程程序設計[J].計算機工程,

2003.29(5):1-2

[4] 吳晨等.C#網(wǎng)絡與通訊程序設計案例精講[M].清華大學出版社,

2006.

[5] 姜曉東.C#4.0權(quán)威指南[M].機械工業(yè)出版社,2010.

猜你喜歡
系統(tǒng)設計
基于FCR的城市地下供水管網(wǎng)應急處置系統(tǒng)設計
基于移動互聯(lián)技術的通用評價系統(tǒng)的設計
基于UML技術的高校貧困生管理系統(tǒng)建模分析
計算機遠程監(jiān)控技術在新聞廣電中的應用
數(shù)字化語音存儲于回放綜合實驗系統(tǒng)設計
一種基于SATA硬盤陣列的數(shù)據(jù)存儲與控制系統(tǒng)設計研究
工業(yè)熱電偶計量檢定系統(tǒng)設計
基于物聯(lián)網(wǎng)的煤礦智能倉儲與物流運輸管理系統(tǒng)設計與應用
目標特性測量雷達平臺建設構(gòu)想
科技視界(2016年22期)2016-10-18 14:34:34
星級酒店建筑電氣及弱電智能系統(tǒng)設計分析
枣庄市| 池州市| 贵州省| 曲水县| 南充市| 浏阳市| 荣昌县| 沧州市| 福贡县| 沁水县| 东明县| 旬邑县| 广南县| 大名县| 棋牌| 金寨县| 桐柏县| 禹州市| 瑞安市| 饶河县| 天台县| 满洲里市| 无锡市| 搜索| 玛曲县| 乐山市| 临邑县| 个旧市| 托克托县| 沂南县| 仲巴县| 安国市| 南川市| 天祝| 长汀县| 苏尼特左旗| 手游| 阳泉市| 治多县| 科尔| 通渭县|