如何获取网络时间?
祝大家五一节快乐!
我想要一段获取网络时间的代码,来同步本地的机器时间
若没有代码,思路也可以的
搜索了很长时间,没有答案
ntp(RFC 1305)看了半天,看不懂
望高手指点!
问题点数:100、回复次数:33Top
1 楼w3guy(何去何从)回复于 2004-05-01 02:15:58 得分 1
W2K/XP 下有同步机器时间的service, 不知道98下有没有。
下面 这个是ntp的一个实现,应该有你要的东西:
http://www.ntp.org/downloads.htmlTop
2 楼yhqs540(Reich)回复于 2004-05-01 20:26:39 得分 1
根据网络标准和时钟来判断呢?
序列号 每0.5s增加64000Top
3 楼hudan(路弯弯其不好走兮,吾将上下而求索)回复于 2004-05-05 17:55:21 得分 0
to w3guy(何去何从):
这个url不能下载
to yhqs540(18岁的我还在哭)
你是不是还没有讲完,请继续
to all
各位大虾,请出招!Top
4 楼hudan(路弯弯其不好走兮,吾将上下而求索)回复于 2004-05-06 00:16:00 得分 0
知道不知道,请说句话,来者有分Top
5 楼sharkhuang(走吧走吧!人总会慢慢长大~)回复于 2004-05-06 10:54:16 得分 1
ntp有自己的协议啊Top
6 楼Sander()回复于 2004-05-06 15:32:03 得分 1
我不知道对不对?
传送server时间到client, 比对当前local time, 传n次。
取平均值 nTransmitTime = (server time-client time)/n.
client time = server time + nTransmitTime;
Top
7 楼hudan(路弯弯其不好走兮,吾将上下而求索)回复于 2004-05-06 21:51:59 得分 0
to Sander() :
我不需要很精确的时间,误差几分钟都可以的,如果这样的话,有没有简单的办法得到Top
8 楼wangle11111(wangle)回复于 2004-05-07 01:21:33 得分 1
我看了一先,SNTP-简单网络时间协议,,
你可以自定义一个 它的包。。然后用UDP的套接字将它发给一个时间服务器,当然了,要知道这个服务器的地址。
Top
9 楼Sander()回复于 2004-05-07 09:11:40 得分 0
我上面的方法不简单吗?Top
10 楼jszj(老板说mis部不是赚钱的部门...)回复于 2004-05-07 09:22:16 得分 1
误差几分钟都可以的
-----------------------------------
那用tcp传输过来不就可以了吗?Top
11 楼hudan(路弯弯其不好走兮,吾将上下而求索)回复于 2004-05-07 18:01:08 得分 0
to Sander()
传送server时间到client, 比对当前local time, 传n次
-----------------------------------
你的方法听起来是很不错,可是我没有Server,怎么传?
能不能贴点代码出来(由于我是比较笨,不要见笑)?Top
12 楼wangle11111(wangle)回复于 2004-05-07 21:38:46 得分 1
我晕。。没有server 。。。。
to:SANDER : 你没有考虑往返延时吧。。。Top
13 楼zxs790501(沧海一粟)回复于 2004-05-07 22:27:24 得分 1
你留下e-mail
我有源代码..............Top
14 楼zxs790501(沧海一粟)回复于 2004-05-07 22:34:04 得分 0
你mail给我
我明天回复Top
15 楼hudan(路弯弯其不好走兮,吾将上下而求索)回复于 2004-05-07 22:40:45 得分 0
to zxs790501:
my Email : hudande@sohu.com
Thank you!
Top
16 楼hudan(路弯弯其不好走兮,吾将上下而求索)回复于 2004-05-07 22:43:30 得分 0
to zxs790501(沧海一粟)
你mail给我
我明天回复
------------------------------
我往那里mail?Top
17 楼frysc(挨踢忍踩)回复于 2004-05-08 13:48:50 得分 1
我有源代码,给我你的E-Mail.Top
18 楼hudan(路弯弯其不好走兮,吾将上下而求索)回复于 2004-05-09 00:47:59 得分 0
to frysc(挨踢忍踩)
我的EMail是:hudande@sohu.com
哪位热心人有代码的话发一份给我,万分感激Top
19 楼wangle11111(wangle)回复于 2004-05-09 16:04:51 得分 1
还有我啊!!
wangle11111@126.com
谢谢!!Top
20 楼hudan(路弯弯其不好走兮,吾将上下而求索)回复于 2004-05-11 00:48:07 得分 0
怎么这里就没人帮忙呢
Top
21 楼beejoy(我一直在思考)回复于 2004-05-11 20:30:24 得分 1
这个问题已经有一个相同的贴子了,你可以看看:http://expert.csdn.net/Expert/topic/3048/3048966.xml?temp=.5338709
Top
22 楼hudan(路弯弯其不好走兮,吾将上下而求索)回复于 2004-05-14 12:19:32 得分 0
感谢 beejoy(我一直在思考)
不过里面提供的例子都是连接到一个页面来获取时间的,但现在这个网页连接不上了,
继续求解!Top
23 楼hudan(路弯弯其不好走兮,吾将上下而求索)回复于 2004-06-22 10:59:52 得分 0
近来的朋友,帮我顶一下,Top
24 楼stoone(阳光总在风雨后)回复于 2004-06-28 10:04:56 得分 1
不会,帮你顶Top
25 楼hudan(路弯弯其不好走兮,吾将上下而求索)回复于 2004-07-01 20:33:40 得分 0
两个月了,还是没解决Top
26 楼hudan(路弯弯其不好走兮,吾将上下而求索)回复于 2004-07-18 03:30:39 得分 0
help !Top
27 楼jzyhummel(篱影)回复于 2004-07-18 10:20:16 得分 88
嘿嘿,两个月还没有解决啊,我一天在网络版,居然没有看到 :)
void CGetNetTimeDlg::OnButton1()
{
WSADATA wsa;
SOCKET sock;
struct sockaddr_in cliaddr;
char buf[100];
if(WSAStartup(MAKEWORD(2,0), &wsa)!=0)
sock = socket(AF_INET, SOCK_STREAM, 0);
cliaddr.sin_family=AF_INET;
cliaddr.sin_addr.s_addr = inet_addr("192.43.244.18");
cliaddr.sin_port = htons(13);
ZeroMemory(buf,100);
connect(sock,(struct sockaddr *)&cliaddr,sizeof(cliaddr));
recv(sock,buf,100,0);
SetDlgItemText(IDC_STR,buf);
}
另外友情提供几个组织的地址:
time.nist.gov NIST
tick.usno.navy.mil 美国海军天文台
clock.sgi.com SGI
tick.mit.edu 麻省理工学院(MIT)
不过一般都推荐美国海军天文台的,上面得到的时间是格林威治时间,北京时间要加8Top
28 楼jzyhummel(篱影)回复于 2004-07-18 10:21:28 得分 0
if(WSAStartup(MAKEWORD(2,0), &wsa)!=0)
=============================================================================
这句我忘记了,这是我去掉错误处理语句后遗留下的Top
29 楼jzyhummel(篱影)回复于 2004-07-18 10:26:11 得分 0
最近要升五角,赶快给分 :)Top
30 楼hudan(路弯弯其不好走兮,吾将上下而求索)回复于 2004-07-18 12:22:30 得分 0
谢谢 jzyhummel(刀锋[篱影])
我先测试一下,测试成功,立刻揭贴!Top
31 楼hudan(路弯弯其不好走兮,吾将上下而求索)回复于 2004-07-18 13:27:18 得分 0
单位通过代理上网
只开放了80端口,端口13没反映Top
32 楼jzyhummel(篱影)回复于 2004-07-18 19:20:30 得分 0
那就没有可能了,13号端口是必须的Top
33 楼hudan(路弯弯其不好走兮,吾将上下而求索)回复于 2004-07-21 00:56:23 得分 0
感谢jzyhummel(刀锋[篱影])
揭贴Top




