当前位置: 首页 > 范文大全 > 优秀范文 >

局域网时间同步系统设计与实现

发布时间:2022-04-04 09:58:06 | 浏览次数:


打开文本图片集

摘 要: 目前很多软件系统都是基于网络环境的,拥有统一的时间是许多分布式软件应用的前提,但是这些软件系统并没有提供同步各计算机系统时间的功能。为此,探讨了Windows环境下局域网系统时间同步的相关设计模型,介绍了系统的开发原理、设计思想和具体实现,给出了主要的程序代码。该系统的开发,解决了实际工作中局域网计算机时间同步的问题,达到了预期的效果。

关键词: 时间同步; 系统设计; 系统实现; 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 引言

随着计算机网络应用范围的不断扩大,对网络设备及网络应用的时间同步提出了越来越高的要求,拥有一个精准的时间同步机制是许多分布式应用的前提[1]。目前大部分软件系统均是基于网络环境的,但是相当数量的软件系统,并未具有与各计算机系统的时间同步功能,通常是利用操作系统的时间同步功能进行时间同步,步骤繁琐[2]。如果人工修改各计算机时间,不但费时,而且很难做到精准。为此,开发一个能同步局域网内各指定计算机时间的软件系统是很有意义的。

1 系统功能

该系统的主要功能是以局域网中某一台计算机(客户端)的时间为基准,将局域网中计算机时间统一为该指定的计算机时间,从而实现局域网内计算机时间的同步,保证其他应用软件数据采集的正确性。

1.1 系统用例图

该系统的用例图,如图1所示。

[设置需同步时间的计算机网络端口] [管理需同步时间的计算机网络地址] [系统管理员][启动系统时间同步服务] [同步系统时间]

图1 系统用例图

1.2 系统界面

该系统的时间同步服务器和客户端界面如图2、图3所示。

图2 时间同步服务器界面

图3 系统时间同步客户端界面

2 系统设计

系统采用C/S架构,服务器端提供设置同步时间服务所对应的网络端口,启动系统时间同步服务和接收同步时间请求的功能;客户端提供管理需同步时间的计算机网络地址和对应的服务端口的功能。

同步时间的具体处理流程如图4、图5所示。

图4 服务器端处理流程

图5 客户端处理流程

3 系统关键功能实现

3.1 系统开发环境

该系统的开发环境为:Microsoft Visual Studio 2010+Windows 7。

3.2 系统实现关键代码

3.2.1 系统时间的获取和设置

系统实现中通过调用系统API函数对系统时间进行操作,核心代码如下:

//系统时间的获取与设置操作类,调用API函数

public class TimeOperate

{ [DllImport("Kernel32.dll")]

public static extern void GetLocalTime (SystemTime sysTime);

//获取系统时间

[DllImport("Kernel32.dll")]

public static extern bool SetLocalTime (SystemTime sysTime);

//设置系统时间

}

3.2.2 系统时间与数据流的转换

系统实现中将获取到的系统时间对象进行序列化后通过网络进行传输,当服务器收到后再将其进行反序列化,得到时间对象。序列化和反序列化操作的主要代码如下:

//序列化操作:将系统时间对象转换为数据流

private byte[] TimeToStream(SystemTime st)

{ MemoryStream ms=new MemoryStream();

BinaryFormatter formatter=new BinaryFormatter();

formatter.Serialize(ms, st);

return ms.ToArray();

}

//反序列化操作:将数据流转换为时间对象

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 时间同步服务监听器的建立

系统中服务器与客户端之间通讯使用.NET Framework提供的Sockets进行通讯[3-5]。

服务器端建立时间同步服务器监听器,监听客户端请求。核心代码如下:

private IPAddress ipAddress; //绑定时间同步服务的IP地址

private int intPort; //绑定时间同步服务的端口号

private Socket listenerSocket; //时间同步服务的监听器

//时间同步服务监听过程

public void BeginListen()

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

listenerSocket=new Socket(AddressFamily.InterNetwork,

SocketType.Stream, ProtocolType.Tcp);

listenerSocket.Bind(ipe);

listenerSocket.Listen(0); //开时监听服务

while (true) //循环监听

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

if (temp != null) //如果有连接请求

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

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

//从客户端接收客户端的当前时间

SystemTime st=StreamToTime(stream);

//将网络数据流反序列化为系统时间对象

TimeOperate.SetLocalTime(st);

//根据客户端系统时间设置本计算机的系统时间

temp.Close();

}

}

}

3.2.4 客户端连接服务器

该部分完成客户端发起连接服务器的请求,将客户端当期系统时间发送到服务器。该部分主要通过Socket类的Send方法完成操作,实现较为简单,代码略。

4 结束语

该系统的开发源于实际工作的需要,解决实际工作中局域网计算机同步时间的问题。系统提供一键式同步局域网计算机系统时间的功能,操作方便,不需要用户对计算机进行其余配置,极大地减少了用户的工作负担。但是,该系统仍然存在两方面的不足:一是实现中并未考虑到网络传输时延对时间同步精度的影响;二是系统的实现是基于Windows系统的,目前尚不支持非Windows系统的时间同步。以上问题需进一步完善和研究。

参考文献:

[1] 刘爱东等.一种基于通用PC的局域网时间同步方法[J].科学技术与

工程,2012.12(28):7434-7438

[2] 赵勇等.时间同步服务器在中、小型局域网中的应用[N].科技创新导

报,2010.26:29

[3] 许毅,冯山.使用C#语言进行多线程程序设计[J].计算机工程,

2003.29(5):1-2

[4] 吴晨等.C#网络与通讯程序设计案例精讲[M].清华大学出版社,

2006.

[5] 姜晓东.C#4.0权威指南[M].机械工业出版社,2010.

推荐访问: 局域网 同步 时间 设计 系统
本文标题:局域网时间同步系统设计与实现
链接地址:http://www.yzmjgc.com/youxiufanwen/2022/0404/40130.html

版权声明:
1.赢正文档网的资料来自互联网以及用户的投稿,用于非商业性学习目的免费阅览。
2.《局域网时间同步系统设计与实现》一文的著作权归原作者所有,仅供学习参考,转载或引用时请保留版权信息。
3.如果本网所转载内容不慎侵犯了您的权益,请联系我们,我们将会及时删除。

版权所有:赢正文档网 2010-2024 未经授权禁止复制或建立镜像[赢正文档网]所有资源完全免费共享

Powered by 赢正文档网 © All Rights Reserved.。粤ICP备19088565号