同步时间修正方法及其装置与流程

文档序号:11147313阅读:744来源:国知局
同步时间修正方法及其装置与制造工艺

本发明涉及同步时间修正方法及其装置。



背景技术:

农村集体资产交易平台的建设正在我国逐渐发展开来,其中有一个业务模块是网上交易,网上交易是指使用软件在网络上进行竞投标的业务,用户竞投标的过程中涉及到用户报名竞投、用户交保证金、标的开标、用户叫价竞投和标的结束;在竞投标的过程中竞投规则里有一条是离标的结束时间倒数三分钟里,如果有用户进行出价竞投,标的结束时间就会自动延迟3分钟,延迟次数少于100次,这些竞标规则都和时间有很大的关联性。但是在这种网上交易平台上因为用户端的时间和服务器的时间不对等影响竞投过程的公平性和公正性。

针对以上问题现有技术对时间的不同步进行了相关修正的方法:第一种是获取服务器时间作为用户端的时间,但是这种简单的同步,用户端和服务器的时间仍有较大的偏差,是因为缺少网络通信数据传输的耗时时间;第二种是向服务器获取时间的同时获取手机本地时间T1和T2,以及服务器时间T’,当获取服务器时间成功使用(T2-T1)/2计算出单向通信时间,再把T’+(T2-T1)/2,以修正用户端的时间,这种方法在网络通信不稳定的情况下还是有较大的误差,原因是缺少考虑上下行通信耗时有不对等。当用户端发送与接收不对等或服务器接收与发送不对等时,使用(T2-T)/2计算出来的单向通信耗时是不准确的,所以T’+(T2-T1)/2也是不准确的。

例如,现有A、B、C、D、E三个用户进行报名竞投标,会出现一下情况:1、由于A的手机通信不太稳定,通过T’+(T2-T1)/2算法得到的时间比服务器时间慢了7秒,当A离报名倒计时结束时间还有6秒时进行标的报名,此时A手机还可以报名,但实际服务器的报名时间已经报名结束了,此时出现了报名失败的情况。

2、由于B的手机通信不太稳定,通过T’+(T2-T1)/2算法得到的时间比服务器时间慢了7秒,当B离竞投结束倒计时还有6秒时进行出价竞投,此时B手机还可以出价竞投,但实际服务器的出价竞投时间已经结束了,此时出现竞投出价失败。

3、由于C的手机通信不太稳定,通过T’+(T2-T1)/2算法得到的时间比服务器时间快了7秒,当C离竞投结束倒计时还有6秒时进行出价竞投,C的手机此时出现竞投出价已经结束,但服务器还有6秒的可操作时间。

4、竞标的出价延迟次数为0,由于D的手机通信不太稳定,通过T’+(T2-T1)/2算法得到的时间比服务器时间快了3秒,当D离竞投结束倒计时还有5秒时进行出价竞投,D出价成功,D的P1标的竞投结束时间延时3分钟,但此时C的P1标的已经是结束状态,所以C不可以操作,D可以继续操作,会引致不公平的现象。

5、竞标的出价延迟次数为最后一次。由于E的手机通信不太稳定,通过T’+(T2-T1)/2算法得到的时间比服务器时间快了7秒,当E离倒计时结束时间还有1秒时,出价竞投,E出价成功了,但服务器的结束时间还有8秒,2秒后E的手机显示竞投时间已经结束,但服务器还有6秒,此时D的手机通信不太稳定,通过T’+(T2-T)/2算法得到的时间比服务器时间快了3秒,此时D手机显示竞投结束还有3秒,这个时候D进行出价,D可以成功出价,但E显示P1标的竞投时间已经结束了就会让E误认为自己是最后一个出价,肯定会中标。但此时D是最后一个出价的,6秒后P1标的在服务器上已经结束了,此时中标人为D。

6、竞标的标的投标结果是D中标了,其实这过程中由于这个时间的误差问题导致A、B、C、E都错过了竞标的时机。

所以如果客户与服务器时间偏差越小势就越大;如果客户与服务器时间偏差越大优势就越小。



技术实现要素:

为了克服现有技术的不足,本发明的目的在于提供同步时间修正方法及其装置,其能解决在网上竞标交易的时间不同步的问题。

本发明的目的采用以下技术方案实现:

同步时间修正方法,应用于用户端和服务器,包括如下步骤:

S1、获取用户端发送请求指令的时间T1,以及获取用户端结束请求指令时的时间T2;

S2、获取服务器接收到请求指令的时间T’1;

S3、根据公式P=T2-(T’1+(T2-T1)/2)得到误差值P;

S4、判断P是否小于或等于预设误差值N,如果是执行S6,否则执行S5;

S5、计算误差修正值P’=(T2-P)-(T’1+((T2-P)-(T1-P))/2),同时将误差值P加上误差修正值P’,得到新的误差值P,返回S4;

S6、将用户端的时间T减去误差值P,得到新的用户端的时间T。

作为优选,S5返回S4的次数不能超过E次,当第E次返回S4的判断仍为否,则结束。

同步时间修正装置,包括:

第一获取模块,用于获取用户端发送请求指令的时间T1,以及获取用户端结束请求指令时的时间T2;

第二获取模块,用于获取服务器接收到请求指令的服务器的时间T’1;

第一计算模块,用于根据公式P=T2-(T’1+(T2-T1)/2)得到误差值P;

判断模块,用于判断P是否小于或等于预设误差值N,如果是执行修正模块,否则执行第二计算模块;

第二计算模块,计算误差修正值P’=(T2-P)-(T’1+((T2-P)-(T1-P))/2),同时将误差值P加上误差修正值P’,得到新的误差值P,返回判断模块;

修正模块,用于将用户端的时间T减去误差值P,得到新的用户端的时间T。

作为优选,第二计算模块返回判断模块的次数不能超过E次,当第E次返回判断模块的判断仍为否,则结束。

相比现有技术,本发明的有益效果在于:通过用户端发送请求指令的时间T1、用户端结束请求指令时的时间T2和服务器接收到请求指令的时间T’1可以获取到服务器和用户端的时间的误差值,并将获取到的误差值对用户端的时间进行修正。

附图说明

图1为本发明的同步时间修正方法的流程图;

图2为本发明的同步时间修正装置的模块图。

具体实施方式

下面,结合附图以及具体实施方式,对本发明做进一步描述:

同步时间修正方法,应用于用户端和服务器,如图1所示,包括如下步骤:

步骤101、获取用户端发送请求指令的时间T1,以及获取用户端结束请求指令时的时间T2;

其中,服务器发送请求指令至服务器。时间T1和时间T2均是用户端的时间。

步骤102、获取服务器接收到请求指令的服务器的时间T’1;

时间T’1是服务器的时间。

步骤103、根据公式P=T2-(T’1+(T2-T1)/2)得到误差值P;

步骤104、判断P是否小于或等于预设误差值N,如果是执行步骤106,否则执行步骤105;

步骤105、计算误差修正值P’=(T2-P)-(T’1+((T2-P)-(T1-P))/2),同时将误差值P加上误差修正值P’,得到新的误差值P,即误差值P=P+P’,返回步骤104;

进一步地,步骤105返回104的次数不能超过E次,当第E次返回步骤104的判断仍为否,则结束。E的意义在于控制迭代执行的次数,防止用户端的网络不好时无限制的执行。

步骤106、将用户端的时间T减去误差值P,得到新的用户端的时间T,即T=T-P,在误差范围N内将用户端的时间T进行了校正。

如果P不大于误差值N,则意味着,该误差值P是符合要求的可以直接进入步骤106计算新的时间T;如果P大于误差值N,则意味着误差值P不符合要求,需要计算误差修正值P’进行修正误差后得到新的误差值P,再利用新的误差值P计算新的时间T。

本方法中,由于使用了P不断修正时间,让客户端时间更接近服务器时间,时间偏差控制在可接受的范围内(如500毫秒),让用户的时间偏差在这个设定的阀值内,可以让用户公平公正的竞价。

同步时间修正装置,如图2所示,包括:

第一获取模块,用于获取用户端发送请求指令的时间T1,以及获取用户端结束请求指令时的时间T2;

第二获取模块,用于获取服务器接收到请求指令的服务器的时间T’1;

第一计算模块,用于根据公式P=T2-(T’1+(T2-T1)/2)得到误差值P;

判断模块,用于判断P是否小于或等于预设误差值N,如果是执行修正模块,否则执行第二计算模块;

第二计算模块,用于计算误差修正值P’=(T2-P)-(T’1+((T2-P)-(T1-P))/2),同时将误差值P加上误差修正值P’,得到新的误差值P,返回判断模块;

修正模块,用于将用户端的时间T减去误差值P,得到新的用户端的时间T。

进一步地,第二计算模块返回判断模块的次数不能超过E次,当第E次返回判断模块的判断仍为否,则结束。

对本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及形变,而所有的这些改变以及形变都应该属于本发明权利要求的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1