靠,这也叫“时间同步服务器”,我还以为你要完成 ntp 的java版。

解决方案 »

  1.   

    我也不知道是不是这样,,,,,只是题中的意思有点不大明白
    所以只好相对说一下了,,
    我想可能要好几次验证,,两者之间用Socket 进行连接,
    然后向Socket写入服务器的Date然后传入客户端并保存,再由客户端传回服务器,(此过程date不变)服务器开始下一次的时间传送
    那么每次客户端都对服务器的传递时间和本地保存的时间进行比较,由于网络延时基本一定,所以时间也就基本一定,所以无论本地时间是多少,时间到了,自然考试也就结束了,
    不知道思路对不对,,
    如果是这样的话,
    我会再写代码,,
      

  2.   

    这个要看你的具体的程序,假如你的程序不存在回调,可以在客户端保存一个root变量和一个自己每秒增加一的时间戳变量,对应每个从服务器到客户的消息包括了服务器的这2个变量,客户根据一定的安全规则更新自己的2个变量,服务器的时间戳变量增加到一定极限就为0,root加1,如果客户收到的root大于自己保存的root,或者时间戳大于自己模拟增加的时间戳变量,就把消息中的root和时间戳更新,时间戳最大值比如是2的32方。
    如果你的程序有回调或则安全需求比较高,就比较麻烦,有个ietf的rfc具体讲安全同步的,可以看看有没帮助