我想用VB作个网络校时小软件,用来同香港天文台校时服务器(stdtime.gov.hk)进行时间同步,可是不知道如何获取香港天文台时间服务器上的标准时间,请高手教我!!!谢谢^_^

解决方案 »

  1.   

    这是一个例子!你参考下!
    http://www.cnsw.org/bbs/attachment.php?aid=253
      

  2.   

    看这个吧
    http://www.cnsw.org/bbs/viewthread.php?tid=1736
      

  3.   

    如果服务器提供的是NTP服务,又该怎么校准呢?
      

  4.   

    ipqn(蚂蚁) 兄介绍的方法我先就看过了,它用的方法知道如何用,我要获取香港天文台校时服务器(stdtime.gov.hk)的系统时间,它里面介绍的方法我不知道如何用到我这里来。^_^
      

  5.   

    找到了NTP服务器的校时方法,需要用winsock控件连接校时服务器的37端口,返回一个不知道从多少年前到现在经过的秒数,还需要自己计算年月日,晕死了!
      

  6.   

    ipqn(蚂蚁) 说的那个方法我把那里的源程序改了一下,现在可以用了,不过我觉得速度不够快!!
      

  7.   

    fmaliang(良马)
    你的代码可以发给我学习学习吗?
    [email protected]
      

  8.   

    flying_ylh(一平) 
    代码打包发给你了,你自己查收,不过有点问题:
    需要把tmpstr(服务器返回的数据)申明得比Long型更长的整数类型,因为这个数很大,可惜VB5好像没有!!!不过VB6可以申明成无符号长整型。
      

  9.   

    fmaliang(良马)
    代码已经收到,正在研究中,呵呵以后要多交流啊
    我用的是6。:)
      

  10.   

    你先在控制台模式(Win2k的cmd或Win9x的command)下看看就知道了。控制台命令:telnet stdtime.gov.hk 13    (连接stdtime.gov.hk的13端口)
    返回数据:  29 JUN 2004 21:17:15 HKT很清楚了~~~~~
      

  11.   

    13端口也是time 端口,看来也可以利用。我试试看。
      

  12.   

    Private Sub cmdGetTime_Click()
      Winsock.Connect "stdtime.gov.hk", 13
    End SubPrivate Sub Winsock_Close()
      txtTime.Text = txtTime.Text & vbCrLf & "关闭连接"
    End SubPrivate Sub Winsock_DataArrival(ByVal bytesTotal As Long)
      Dim tmpstr As String '13端口返回的是字符串数据类型!!!
      Winsock.GetData tmpstr
      txtTime.Text = tmpstr
      Winsock.Close'大家帮我看看这条语句有必要吗?
    End Sub