• 3980阅读
  • 2回复

在一个UDP程序中两次取系统时间,但第二次取的系统时间小于第一次的 [复制链接]

上一主题 下一主题
离线loopolike
 

只看楼主 倒序阅读 楼主  发表于: 2012-07-24
关键词: 求助
        程序的大概功能是这样的,在按下一个按钮后,取一次系统时间,然后将系统时间发送给服务器,然后服务器,收到信息后,将服务器时间发送回来,然后软件在接受到信息后,将系统当时的时间在获取,暂且将第一次的时间命名为T1,第二次为T4,结果在运行时,要么是一毫秒都不差,要么就是T4比T1小一秒,这有这么两种情况出现。
       先根据现象分析问题
      一、T1和T4数值是一样的
     T4事件发生在T1之后,那么正确的情况是T4总是比T1大的,即使是网络在好,即使是同一级网络,网络传输也是有延时的,但是有些时候上是一样的。所以这样的数据也是不真实的,因为我ping过服务器,网络延时是25ms。
     二、T4比T1从数值上小1s
     这种情况是我最想不通的,后来我给程序里用多线程取系统时间,也就是取T1为一个线程,取T4为一个线程。即使做成这样,问题依然是以上两种情况。
     以下是具体的代码
QDateTime m_currentDateTime;
m_currentDateTime = m_currentDateTime.currentDateTime();
难道这样的代码取系统时间不对吗??大家以前也遇到过同样的问题的话,就帮我分析以下,谢谢

离线atmats
只看该作者 1楼 发表于: 2012-07-24
QDateTime m_currentDateTime;
m_currentDateTime = m_currentDateTime.currentDateTime();

你这取得都是系统的当前时间,估计是不会差别太大,记录时间差或许会比较好
离线XChinux

只看该作者 2楼 发表于: 2012-07-24
你不是取的秒么,取QDateTime的msecsTo()计算一下,看两个时间差距有多大。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个