二 工作组环境
1)如果所有机器都可以访问internet,可以直接使用timewindowscom(默认的配置)
2)如果机器不能访问internet,或者有防火墙导致无法同步,可以在2003服务器上创建时间服务器,客户端XP系统设置时间服务器地址为2003服务器。
三 客户端设置
双击托盘区显示时间的地方,出现对话框之后选择Internet时间设置时间服务器的地址。默认为timewindowscom,设置为2003服务器地址,然后单击“立即更新”按钮实现“时间同步”。
四 服务器端设置
1 单击“开始”,单击“运行”,键入 regedit,然后单击“确定”。
2 找到并单击下面的注册表子项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags
3 在右窗格中,右键单击“AnnounceFlags”,然后单击“修改”。
4 在“编辑 DWORD 值”的“数值数据”框中键入 A,然后单击“确定”。
5 退出注册表编辑器。
6 在命令提示符处,键入以下命令以重新启动 Windows 时间服务,然后按 Enter:
net stop w32time && net start w32time
参见>程序设计步骤如下:1、 新建一个工程;2、 在窗体上放一个TEdit控件和一个TClientSocket(在Internet页下)控件。TEdit用来显示取得的格林尼治时间转化成北京时间后的时间,TClientSocket用来从Internet 时间服务器获取标准的格林尼治时间;3、 程序代码如下:procedure TForm1FormCreate(Sender: TObject);beginClientSocket1Host :='tickusnonavymil'; // 美国海军天文台;ClientSocket1Port :=13;ClientSocket1Open;end;procedure TForm1ClientSocket1Read(Sender: TObject;Socket: TCustomWinSocket);varTempTime: TDateTime;hh,mm,ss,ms: word;sTime : string;beginsTime := SocketReceiveText; // 取得格林尼治时间;sTime:=Copy(sTime,12,8); // 取得时间部分;DecodeTime(StrToTime(sTime),hh,mm,ss,ms);hh:=(hh+8) mod 24; // 转化成北京时间;TempTime:=EncodeTime(hh,mm,ss,ms);Edit1Text :=TimeToStr(TempTime);end;4、 编译运行,稍微等几秒钟(和你的网络速度有关,笔者等了大概一秒钟),TEdit控件就显示出了由格林尼治时间转化得到的北京时间。个程序得到的时间会和标准时间有几秒的误差,但除非你用来控制火箭的发射,否则,这无妨大碍。笔者是从美国海军天文台得到标准时间,你还可以从别的时间服务器上获间,但由于每个时间服务器的时间格式不同,所以在编写程序时要注意作相应的处理。域名 组织Clocksgicom SGITickmitedu 麻省理工学院时间戳服务器有时间同步系统。
时间同步服务器是一种高科技智能化、可独立基于NTP/SNTP协议工作的时间服务器。
时间同步服务器从GPS卫星上获取标准时钟信号信息,将这些信息在网络中传输,网络中需要时间信号的设备如计算机,控制器等设备就可以与标准时间源同步。
标准的时钟信息通过TCP/IP网络传输,DNTS系列还支持多种流行的时间发布协议,如time/UDP,并支持可设置的UDP端口的中新创科定义的时间广播数据包。
NTP和time/UDP的端口号分别固定于RFC-123和RFC-37指定的123和37。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)