同步服务器时间的方法及系统的制作方法

文档序号:8004670阅读:238来源:国知局
同步服务器时间的方法及系统的制作方法
【专利摘要】本发明提供一种同步服务器时间的方法及系统,所述方法包括以下步骤:获取当前服务器时间作为请求发送时间,并通过预先建立的服务器与终端之间的SOCKET连接将所述请求发送时间以报文的形式发送给所述终端;接收所述终端所反馈的报文,获取当前服务器时间作为响应接收时间,并对所述反馈的报文进行解析;根据解析结果以及所述响应接收时间计算服务器时间与终端时间的时钟补充值;根据所述时钟补充值进行服务器时间的同步。本发明的同步服务器时间的方法及系统,一方面节省了企业在解决服务器时间同步校准问题上的开支,另一方面服务器获取到了与标准时间几乎完全一致的时间,精确度高,满足了那些对时间精确度要求极高应用的需求。
【专利说明】同步服务器时间的方法及系统
【技术领域】
[0001]本发明涉及计算机网络领域,特别是涉及一种同步服务器时间的方法以及一种同步服务器时间的系统。
【背景技术】
[0002]在计算机网络信息日益发达的今天,很多企业都引入了企业内部移动应用,出于安全性考虑,很多重要移动应用的服务器都不与互联网连接,所有终端、服务器及整个网络属于一个与外界隔离的内部局域网络。
[0003]另外,在某些情况下,应用对时间的精确度要求会比较高。在这样的网络环境下,如何通过一种既经济简单又精确无误的方式将服务器时间设置为标准时间成为了一个技术难题。
[0004]传统的同步服务器时间的方法中,采用对照标准时间手动设置服务器时间的方式。然而,通过对照标准时间手动设置服务器时间的方式虽然能够实现将服务器时间设置为标准时间的目的,但是这样设置出来的服务器时间往往不够精确,而且在设置过程可能产生操作性失误,导致时间设置错误,进而影响到服务器的正常运行。

【发明内容】

[0005]基于此,有必要针对上述同步服务器时间不够精确的问题,提供一种同步服务器时间的方法及系统。
[0006]为实现上述目的,本发明采用如下的技术方案:
[0007]—种同步服务器时间的方法,包括以下步骤:
[0008]获取当前服务器时间作为请求发送时间,并通过预先建立的服务器与终端之间的SOCKET连接将所述请求发送时间以报文的形式发送给所述终端;
[0009]接收所述终端所反馈的报文,获取当前服务器时间作为响应接收时间,并对所述反馈的报文进行解析;
[0010]根据解析结果以及所述响应接收时间计算服务器时间与终端时间的时钟补充值;
[0011]根据所述时钟补充值进行服务器时间的同步。
[0012]一种同步服务器时间的系统,包括服务器端,所述服务器端包括:
[0013]报文发送模块,用于获取当前服务器时间作为请求发送时间,并通过预先建立的服务器端与终端之间的SOCKET连接将所述请求发送时间以报文的形式发送给所述终端;
[0014]报文解析模块,用于接收所述终端所反馈的报文,获取当前服务器时间作为响应接收时间,并对所述反馈的报文进行解析;
[0015]时钟补充值计算模块,用于根据解析结果以及所述响应接收时间计算服务器时间与终端时间的时钟补充值;
[0016]同步模块,用于根据所述时钟补充值进行服务器时间的同步。[0017]由以上方案可以看出,本发明的一种同步服务器时间的方法及系统,服务器通过SOCKET连接与终端进行报文交互,并根据报文交互中所获取的参数计算服务器时间与终端时间的时钟补充值,然后根据该时钟补充值进行服务器时间的同步。本发明通过一种经济而简单的方式将与终端连接的服务器时间设置为标准时间,一方面节省了企业在解决服务器时间同步校准问题上的开支,另一方面服务器获取到了与标准时间几乎完全一致的时间,精确度高,满足了那些对时间精确度要求极高应用的需求。
【专利附图】

【附图说明】
[0018]图1为本发明实施例中一种同步服务器时间的方法的流程示意图;
[0019]图2为本发明实施例中一种同步服务器时间的系统的结构示意图。
【具体实施方式】
[0020]下面结合附图以及具体的实施例,对本发明的技术方案作进一步的描述。
[0021]参见图1所示,本发明的一种同步服务器时间的方法,包括以下步骤:
[0022]步骤S101,获取当前服务器时间作为请求发送时间(记为Tl),并通过预先建立的服务器与终端之间的SOCKET连接将所述请求发送时间以报文的形式发送给所述终端,然后进入步骤S102。
[0023]步骤S102,接收所述终端所反馈的报文,获取当前服务器时间作为响应接收时间(记为T2),并对所述反馈的报文进行解析,然后进入步骤S103。
[0024]需要说明的是,本发明实施例中的大部分操作(如上述的步骤S101、步骤S102以及后续的步骤S103、步骤S104等)均是在服务器中进行的。但是作为一个较好的实施例,在步骤SlOl将所述请求发送时间以报文的形式发送给所述终端之后、步骤S102接收所述终端所反馈的报文之前,还可以包括如下在终端中执行的步骤:
[0025]步骤S1011,终端接收到服务器发送的报文后,获取当前终端时间作为请求接收时间(记为T3),并对所述请求接收时间进行转换,加入到原报文中,然后进入步骤S1012 ;
[0026]步骤S1012,获取当前终端时间作为响应发送时间(记为T4),对所述响应发送时间进行转换,加入到原报文中(此时报文中已经存在三个时间值:T1、T3、T4),得到所述反馈的报文并发送给所述服务器。
[0027]作为一个较好的实施例,所述步骤SlOll以及步骤S1012中获取当前终端时间的过程具体可以包括如下:通过所述终端的GPS (Global Positioning System,全球定位系统)模块获取标准时间作为当前终端时间。
[0028]步骤S103,根据解析结果以及所述响应接收时间计算服务器时间与终端时间的时钟补充值(记为t),然后进入步骤S104。
[0029]作为一个较好的实施例,本步骤中根据解析结果以及所述响应接收时间计算所述时钟补充值的过程具体可以包括如下:根据所述响应接收时间T2以及对所述反馈的报文进行解析后得到的请求发送时间Tl、请求接收时间T3、响应发送时间T4计算所述时钟补充值t。
[0030]具体计算过程如下:假设d为服务器和客户端之的往返时间,t为服务器和客户端之间的时间偏差(即时钟补充值),则有:[0031]T3=Tl+t+d/2 ;T3_Tl=t+d/2 ;T2=T4_t+d/2 ;T2-T3=t_d/2 ;
[0032]可以推出:d=(T2-Tl)-(T4_T3);t= ((T3-T1) + (T4-T2))/2 ;
[0033]由于Tl、T2、T3、T4是已知的,因此通过上述公式即可以计算出时钟补充值t。
[0034]步骤S104,根据所述时钟补充值进行服务器时间的同步。具体的,在步骤S103中计算得到时钟补充值t之后,调用如下的系统函数即可实现服务器时间的同步:
[0035]设置服务器标准时间=当前服务器时间T2 +时钟补充值t。
[0036]作为一个较好的实施例,为了避免操作失误,保证服务器时间的准确度,在步骤S103计算所述时钟补充值之后、步骤S104根据所述时钟补充值进行服务器时间的同步之前,还可以包括如下步骤:
[0037]步骤S1031,重复执行前述步骤(包括步骤SlOl-步骤S103),计算出预定个数的时钟补充值(如连续计算出5个t或10个t等,具体的个数可以根据不同情况做出不同设置),并取平均值作为最终的时钟补充值进行服务器时间的同步。
[0038]作为一个较好的实施例,在步骤S104进行服务器时间的同步之后还可以包括如下步骤:
[0039]步骤S105,发送关闭SOCKET连接的请求给所述终端,并在接收到所述终端的响应后关闭所述SOCKET连接。及时关闭服务器与终端之间的SOCKET连接,可以节约系统资源。
[0040]最后,为了保证服务器时间与标准时间的高度一致,我们还可以设置时间同步周期,当周期到达时重复执行上述步骤SlOl-步骤S105,以便获取到最精确的服务器时间。
[0041]与上述一种同步服务器时间的方法相对应,本发明还提供一种同步服务器时间的系统,包括服务器端,如图2所示,所述服务器端包括:
[0042]报文发送模块101,用于获取当前服务器时间作为请求发送时间,并通过预先建立的服务器端与终端之间的SOCKET连接将所述请求发送时间以报文的形式发送给所述终端;
[0043]报文解析模块102,用于接收所述终端所反馈的报文,获取当前服务器时间作为响应接收时间,并对所述反馈的报文进行解析;
[0044]时钟补充值计算模块103,用于根据解析结果以及所述响应接收时间计算服务器时间与终端时间的时钟补充值;
[0045]同步模块104,用于根据所述时钟补充值进行服务器时间的同步。
[0046]作为一个较好的实施例,本发明的同步服务器时间的系统还可以包括终端,所述终端包括:
[0047]第一报文转换模块,用于接收到所述服务器端发送的报文后,获取当前终端时间作为请求接收时间,并对所述请求接收时间进行转换,加入到原报文中;
[0048]第二报文转换模块,用于获取当前终端时间作为响应发送时间,对所述响应发送时间进行转换,加入到原报文中,得到所述反馈的报文并发送给所述服务器端。
[0049]作为一个较好的实施例,所述终端还可以包括:GPS模块,用于获取标准时间;
[0050]所述第一报文转换模块、第二报文转换模块通过所述GPS模块获取标准时间作为当前终端时间。
[0051]作为一个较好的实施例,所述时钟补充值计算模块可以根据所述响应接收时间以及对所述反馈的报文进行解析后得到的请求发送时间、请求接收时间、响应发送时间来计算得到所述时钟补充值。
[0052]上述一种同步服务器时间的系统的其它技术特征与本发明的一种同步服务器时间的方法相同,此处不予赘述。
[0053]通过以上方案可以看出,本发明的一种同步服务器时间的方法及系统,服务器通过SOCKET连接与终端进行报文交互,并根据报文交互中所获取的参数计算服务器时间与终端时间的时钟补充值,然后根据该时钟补充值进行服务器时间的同步。本发明通过一种经济而简单的方式将与终端连接的服务器时间设置为标准时间,一方面节省了企业在解决服务器时间同步校准问题上的开支,另一方面服务器获取到了与标准时间几乎完全一致的时间,精确度高,满足了那些对时间精确度要求极高应用的需求。
[0054]以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
【权利要求】
1.一种同步服务器时间的方法,其特征在于,包括以下步骤: 获取当前服务器时间作为请求发送时间,并通过预先建立的服务器与终端之间的SOCKET连接将所述请求发送时间以报文的形式发送给所述终端; 接收所述终端所反馈的报文,获取当前服务器时间作为响应接收时间,并对所述反馈的报文进行解析; 根据解析结果以及所述响应接收时间计算服务器时间与终端时间的时钟补充值; 根据所述时钟补充值进行服务器时间的同步。
2.根据权利要求1所述的同步服务器时间的方法,其特征在于,在将所述请求发送时间以报文的形式发送给所述终端之后、接收所述终端所反馈的报文之前,还包括步骤: 终端接收到服务器发送的报文后,获取当前终端时间作为请求接收时间,并对所述请求接收时间进行转换,加入到原报文中; 获取当前终端时间作为响应发送时间,对所述响应发送时间进行转换,加入到原报文中,得到所述反馈的报文并发送给所述服务器。
3.根据权利要求2所述的同步服务器时间的方法,其特征在于,所述获取当前终端时间的过程包括: 通过所述终端的GPS模块获取标准时间作为当前终端时间。
4.根据权利要求2所述的同步服务器时间的方法,其特征在于,所述根据解析结果以及所述响应接收时间计算所述时钟补充值的过程包括: 根据所述响应接收时间以及对所述反馈的报文进行解析后得到的请求发送时间、请求接收时间、响应发送时间计算所述时钟补充值。
5.根据权利要求1-4任意一项所述的同步服务器时间的方法,其特征在于,在计算所述时钟补充值之后、根据所述时钟补充值进行服务器时间的同步之前,还包括步骤: 计算预定个数的时钟补充值,并取平均值作为最终的时钟补充值进行服务器时间的同止/J/ O
6.根据权利要求1-4任意一项所述的同步服务器时间的方法,其特征在于,在进行服务器时间的同步之后还包括步骤: 发送关闭SOCKET连接的请求给所述终端,并在接收到所述终端的响应后关闭所述SOCKET 连接。
7.一种同步服务器时间的系统,包括服务器端,其特征在于,所述服务器端包括: 报文发送模块,用于获取当前服务器时间作为请求发送时间,并通过预先建立的服务器端与终端之间的SOCKET连接将所述请求发送时间以报文的形式发送给所述终端; 报文解析模块,用于接收所述终端所反馈的报文,获取当前服务器时间作为响应接收时间,并对所述反馈的报文进行解析; 时钟补充值计算模块,用于根据解析结果以及所述响应接收时间计算服务器时间与终端时间的时钟补充值; 同步模块,用于根据所述时钟补充值进行服务器时间的同步。
8.根据权利要求7所述的同步服务器时间的系统,其特征在于,还包括终端,所述终端包括: 第一报文转换模块,用于接收到所述服务器端发送的报文后,获取当前终端时间作为请求接收时间,并对所述请求接收时间进行转换,加入到原报文中; 第二报文转换模块,用于获取当前终端时间作为响应发送时间,对所述响应发送时间进行转换,加入到原报文中,得到所述反馈的报文并发送给所述服务器端。
9.根据权利要求8所述的同步服务器时间的系统,其特征在于,所述终端还包括:GPS模块,用于获取标准时间; 所述第一报文转换模块、第二报文转换模块通过所述GPS模块获取标准时间作为当前终端时间。
10.根据权利要求8所述的同步服务器时间的系统,其特征在于,所述时钟补充值计算模块根据所述响应接收时间以及对所述反馈的报文进行解析后得到的请求发送时间、请求接收时间、响应发送时 间计算所述时钟补充值。
【文档编号】H04L7/00GK103457714SQ201310362096
【公开日】2013年12月18日 申请日期:2013年8月19日 优先权日:2013年8月19日
【发明者】姜宁, 陈健, 陈辉, 李子韵, 刘强, 王华芳, 黄仁良 申请人:国家电网公司, 江苏省电力公司南京供电公司, 深圳市凯莱特科技股份有限公司, 江苏省电力公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1