• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

      2013-04-29 22:33:05胡紹波
      計(jì)算機(jī)時(shí)代 2013年6期
      關(guān)鍵詞:系統(tǒng)設(shè)計(jì)

      胡紹波

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

      關(guān)鍵詞: 時(shí)間同步; 系統(tǒng)設(shè)計(jì); 系統(tǒng)實(shí)現(xiàn); Socket

      中圖分類(lèi)號(hào):TP3 文獻(xiàn)標(biāo)志碼:B 文章編號(hào):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 引言

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

      1 系統(tǒng)功能

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

      1.1 系統(tǒng)用例圖

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

      [設(shè)置需同步時(shí)間的計(jì)算機(jī)網(wǎng)絡(luò)端口] [管理需同步時(shí)間的計(jì)算機(jī)網(wǎng)絡(luò)地址] [系統(tǒng)管理員][啟動(dòng)系統(tǒng)時(shí)間同步服務(wù)] [同步系統(tǒng)時(shí)間]

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

      1.2 系統(tǒng)界面

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

      圖2 時(shí)間同步服務(wù)器界面

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

      2 系統(tǒng)設(shè)計(jì)

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

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

      圖4 服務(wù)器端處理流程

      圖5 客戶(hù)端處理流程

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

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

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

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

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

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

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

      public class TimeOperate

      { [DllImport("Kernel32.dll")]

      public static extern void GetLocalTime (SystemTime sysTime);

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

      [DllImport("Kernel32.dll")]

      public static extern bool SetLocalTime (SystemTime sysTime);

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

      }

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

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

      //序列化操作:將系統(tǒng)時(shí)間對(duì)象轉(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)換為時(shí)間對(duì)象

      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 時(shí)間同步服務(wù)監(jiān)聽(tīng)器的建立

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

      服務(wù)器端建立時(shí)間同步服務(wù)器監(jiān)聽(tīng)器,監(jiān)聽(tīng)客戶(hù)端請(qǐng)求。核心代碼如下:

      private IPAddress ipAddress; //綁定時(shí)間同步服務(wù)的IP地址

      private int intPort; //綁定時(shí)間同步服務(wù)的端口號(hào)

      private Socket listenerSocket; //時(shí)間同步服務(wù)的監(jiān)聽(tīng)器

      //時(shí)間同步服務(wù)監(jiān)聽(tīng)過(guò)程

      public void BeginListen()

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

      listenerSocket=new Socket(AddressFamily.InterNetwork,

      SocketType.Stream, ProtocolType.Tcp);

      listenerSocket.Bind(ipe);

      listenerSocket.Listen(0); //開(kāi)時(shí)監(jiān)聽(tīng)服務(wù)

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

      { Socket temp=listenerSocket.Accept(); //接受客戶(hù)端的請(qǐng)求

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

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

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

      //從客戶(hù)端接收客戶(hù)端的當(dāng)前時(shí)間

      SystemTime st=StreamToTime(stream);

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

      TimeOperate.SetLocalTime(st);

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

      temp.Close();

      }

      }

      }

      3.2.4 客戶(hù)端連接服務(wù)器

      該部分完成客戶(hù)端發(fā)起連接服務(wù)器的請(qǐng)求,將客戶(hù)端當(dāng)期系統(tǒng)時(shí)間發(fā)送到服務(wù)器。該部分主要通過(guò)Socket類(lèi)的Send方法完成操作,實(shí)現(xiàn)較為簡(jiǎn)單,代碼略。

      4 結(jié)束語(yǔ)

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

      參考文獻(xiàn):

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

      工程,2012.12(28):7434-7438

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

      報(bào),2010.26:29

      [3] 許毅,馮山.使用C#語(yǔ)言進(jìn)行多線程程序設(shè)計(jì)[J].計(jì)算機(jī)工程,

      2003.29(5):1-2

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

      2006.

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

      猜你喜歡
      系統(tǒng)設(shè)計(jì)
      基于FCR的城市地下供水管網(wǎng)應(yīng)急處置系統(tǒng)設(shè)計(jì)
      基于移動(dòng)互聯(lián)技術(shù)的通用評(píng)價(jià)系統(tǒng)的設(shè)計(jì)
      基于UML技術(shù)的高校貧困生管理系統(tǒng)建模分析
      計(jì)算機(jī)遠(yuǎn)程監(jiān)控技術(shù)在新聞廣電中的應(yīng)用
      數(shù)字化語(yǔ)音存儲(chǔ)于回放綜合實(shí)驗(yàn)系統(tǒng)設(shè)計(jì)
      一種基于SATA硬盤(pán)陣列的數(shù)據(jù)存儲(chǔ)與控制系統(tǒng)設(shè)計(jì)研究
      工業(yè)熱電偶計(jì)量檢定系統(tǒng)設(shè)計(jì)
      基于物聯(lián)網(wǎng)的煤礦智能倉(cāng)儲(chǔ)與物流運(yùn)輸管理系統(tǒng)設(shè)計(jì)與應(yīng)用
      目標(biāo)特性測(cè)量雷達(dá)平臺(tái)建設(shè)構(gòu)想
      科技視界(2016年22期)2016-10-18 14:34:34
      星級(jí)酒店建筑電氣及弱電智能系統(tǒng)設(shè)計(jì)分析
      山东省| 茶陵县| 罗山县| 宜兴市| 汉阴县| 曲阜市| 安远县| 陕西省| 西城区| 南投市| 林西县| 文水县| 缙云县| 西华县| 安乡县| 阿荣旗| 三原县| 宜昌市| 洛南县| 余干县| 朝阳区| 确山县| 英吉沙县| 深泽县| 内乡县| 赣州市| 海晏县| 谢通门县| 石屏县| 新干县| 云霄县| 文山县| 南阳市| 阳泉市| 蒲江县| 齐齐哈尔市| 和田县| 孟连| 宽城| 九寨沟县| 芮城县|