时钟同步实施方案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

时钟同步

1 功能简介

在Windows系统中,时钟同步是通过Windows Time服务(W32Time)完成的。W32Time通过NTP(Network Time Protocol)协议访问目标时钟同步服务器的123端口进行时间同步。服务器的地址可以在“时间与日期”设置窗口的“Internet Time”选项中进行设置。Windows默认提供了几个互联网上的时钟同步服务器地址,比如:,电脑上的时钟同步就是W32Time通过访问这里预设的服务器地址进行的。默认的时间间隔是7天。为了达到系统内部服务器时钟同步的要求,需要在一级平台部署时钟同步服务器,其他服务器都与这台服务器进行时钟同步。

2配置步骤

2.1服务端配置

1)选择车辆轨迹数据整合系统服务器作为时间同步服务器。

2)运行regedit,打开注册表编辑器。

3)找到注册表项

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\

在右侧窗口中将AnnounceFlags的值修改为5。

4)找到注册表项

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\Nt pServer\

在右侧窗口中将Enabled值改为1。

5)在命令行中输入net stop w32time && net start w32time重启W32Time服务。

6)修改Windows防火墙设置,允许123端口的UDP连接。

2.2客户端配置

1)设置目标服务器地址。

打开修改日期与时间的窗口,进入“Internet Time”选项,输入时钟同步服务器的网址或IP 地址。然后点击同步按钮,配置没问题的话,就会显示同步成功,如下图:

2)设置同步时间间隔。

默认的同步时间间隔是7天,可以修改为所需的同步时间间隔。

在客户端电脑上打开注册表编辑器,找到注册表项

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\Nt pClient

在右侧窗口中找到SpecialPollInterval,打开修改窗口,选择十进制,输入同步时间间隔即可(单位为秒)。如下图设置为一小时更新一次。

3)在命令行中输入“net stop w32time && net start w32time”重启W32Time服务,同步服务器时间并查看同步时钟间隔设置,如下图所示。

3应用软件

时钟同步服务器部署完毕后,客户端可以通过执行系统命令来完成与服务端的时钟同步要求。开发应用软件,并测试运行。如下图所示。

完成时钟同步后,获取时钟同步状态标记,可以作为时钟同步状态的日志发送给服务端,保证上下级系统同步信息一致。

附:

工程中加入配置项:ServerIP(默认172.20.51.130)

C#生成一个进程,该进程调用cmd命令来执行时钟同步操作。代码

using System;

using System.Collections.Generic;

using ponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Drawing.Printing;

using System.IO;

using System.Xml;

using System.Diagnostics;

namespace TestWork

{

using TestWork.Properties;

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

Process por = new Process();

por.StartInfo.FileName = "cmd.exe";

eShellExecute = false;

por.StartInfo.RedirectStandardInput = true;

por.StartInfo.RedirectStandardOutput = true;

por.StartInfo.RedirectStandardError = true;

por.StartInfo.CreateNoWindow = true;

por.Start();

por.StandardInput.WriteLine(textBox1.Text);

por.StandardInput.WriteLine("Exit");

textBox2.Text = por.StandardOutput.ReadToEnd(); string strOut = this.textBox2.Text;

if (strOut.Contains("成功") || strOut.Contains("Sucess")) {

相关文档
最新文档