swing搞开发。现在已经实现了服务器与客户端的网络通讯,数据交互。在这个过程中。不论是服务器还是客户端机器的时间都会不确定的出现人为的或者非人为的更改。如何实现服务器与客户端机器的时间时刻同步呢?初步解决方案有:在服务器端保存服务器关闭的时间。再次启动将比对最后一次关闭时保存的时间,如果服务器此刻的时间晚于最后一次关闭时保存的时间,则提示时间错误,需要修改时间。这样可以缩短时间误差。(这里问题来了。如果机器突然断电或者机器出现异常导致电脑关机而没有保存服务器关闭的时间呢?假设忽略这个情况,根据以上的操作。还是不能精确服务器的时间是否与现实生活中的时间同步?好。这先放着不说。继续说完没有说的。)提示时间错误,修改时间后。等待客户端的连接。客户端连接的时候将先比对与服务器的时间。如果与服务器不同步就将调用程序修改客户端机器的时间。时间同步好了才允许进行下一步操作。(问题又来了,假设此时出现网络不通畅或者别的什么原因没能修改好客户端机器的时间...??问题先遗留.......继续说完未说完的话),假设客户端机器的时间与服务器的时间已经同步了。那又怎么捕捉在网络通讯,数据交互这个过程中服务器或者客户端机器不确定的被人为或者非人为的修改了呢?此时又怎么去时刻同步服务器与客户端机器两者之间的时间呢?
     以上的初步解决方案是我个人的想法。希望有已经解决次问题的同行能给予帮助。也希望有被此问题困惑的同行给予支持。更希望广大的同行提出自己宝贵的意见或者建议。这样的问题不光是我本人还有同行的其他人,不光是在我之前的还是在我之后的swing开发人员都期待着问题解决的快捷方案。

解决方案 »

  1.   

    我以前做过个项目,有个时间同步器定时去取utc时间,是个第三方软件,跑在各个服务器上
      

  2.   

    回复5楼:
      那方软件收费否?java能调用否?
      

  3.   

    回复7楼:
       "如果要做到客户机和服务器时间一致,那么必须客户机和服务器之间有数据交互或者借助第三方软件来同步时间",这话好象说的有些过于肯定了。第三方软件好象也是软件开发者开发出来的。然后收费或者不收费的供大家使用。既然人家能开发出来。那为什么我们就不能开发呢。在使用自己的代码与第三方软件两者之间。你会优先选择哪种?肯定是自己的!自己的代码自己会很熟悉。还能进行后续开发。第三方软件就不一样了。先不说收费与否。使用人家的东西会很被动。要是有某一点觉得不合意,那也不能拿它怎么样?要么丢弃对它的使用。要么将就使用。这比起自己的代码你还会选择第三方软件吗?
       "如果你的客户机和服务器之间传递一个时间信息用时都很大的话,那么如果客户端的机器比较多的情况下你的系统还能否运行?","如果考虑网络因素,那么如果网络太慢的话,那么客户机和服务器交互一条只包含时间的信息都成问题,那么你的系统实际可用性是否值得考虑了?",这话未免有些偏题。敬请7楼注意看清此帖的标题。"如果你的客户机和服务器之间传递一个时间信息用时都很大的话" 以现今的情况来看,这样的机器你不会选择我也不会选择。我们都不会是傻瓜。"如果考虑网络因素,那么如果网络太慢的话,那么客户机和服务器交互一条只包含时间的信息都成问题,那么你的系统实际可用性是否值得考虑了" ,严重偏题。我帖子只发问,怎么同步时间。请以此为论点进行讨论。从帖子发出到现在的回复。我从未说过我的系统性能方面的只字片语。7楼就先议论我的系统性能。而且字语之间那么肯定。7楼就未说先知的对我的系统那么的了解吗?在此我也不先评论我的系统的性能如何。因为系统还尚在开发,测试中。虽然7楼的话真是让我有种说不出的感觉。但是我还是很感谢你的支持能来回我的帖。"如果服务器的时间经常改变的话,建议是否考虑换一台比较稳定服务器。因为服务器都经常更改系统时间,可见服务器从某些方面来说极不稳定啊",彻底偏题<"不论是服务器还是客户端机器的时间都会不确定的出现[color=#FF0000]人为的或者非人为的更改。如何实现服务器与客户端机器的时间时刻同步呢[/color]">,不要议论服务器的性能。以现今的情况来看。服务器的配置都很高了。运行我的系统绝对不在话下。为了杜绝人为的或者非人为的对系统时间的修改以及提高系统数据的完整性与准确性,所以才要同步系统的时间。欢迎继续回来讨论。。
      

  4.   

    你可以编个java代码  在java se 6.0 api 中有这个的类和接口你 自己查吧