ctime()函数解决思路
ctime()函数
linux
convert UCT to UNIX epoch
#define UNIXEPOCH 2208988800UL /* UNIX epoch, in UCT secs
这个是 服务器 端
(void) time(&now);
now = htonl((unsigned long)(now +UNIXEPOCH));
send(clientfd, (char *)&now,sizeof(now), 0);
这个是 客户端
n = read(s, (char *)&now, sizeof(now));
now = ntohl((unsigned long)now); /* put in host order */
now -= UNIXEPOCH; /* convert UCT to UNIX epoch */
printf("now--------------%s", ctime(&now));
UNIXEPOCH 2208988800UL 是什么 为什么 服务器加上减去他 客户端 减去他
------解决方案--------------------
不知道,等于没做任何事情,可以在服务端加上一句ctime比较一下两端的结果,按道理说什么也没发生过。
------解决方案--------------------
感觉如果客户端和服务端都在unix上,加与不加都是一样的。因为unix上是从1970-01-01 00:00.00开始的。
2208988800是1970-01-01 00:00.00距离1900-01-01 00:00.00的秒数。
http://www.faqs.org/rfcs/rfc868.html
------解决方案--------------------
这个应该还有其他PC系统的客户端
------解决方案--------------------
简单的搜索方法:unix epoch utc
让你清楚的明白这一切的来龙去脉
------解决方案--------------------
linux
convert UCT to UNIX epoch
#define UNIXEPOCH 2208988800UL /* UNIX epoch, in UCT secs
这个是 服务器 端
(void) time(&now);
now = htonl((unsigned long)(now +UNIXEPOCH));
send(clientfd, (char *)&now,sizeof(now), 0);
这个是 客户端
n = read(s, (char *)&now, sizeof(now));
now = ntohl((unsigned long)now); /* put in host order */
now -= UNIXEPOCH; /* convert UCT to UNIX epoch */
printf("now--------------%s", ctime(&now));
UNIXEPOCH 2208988800UL 是什么 为什么 服务器加上减去他 客户端 减去他
------解决方案--------------------
不知道,等于没做任何事情,可以在服务端加上一句ctime比较一下两端的结果,按道理说什么也没发生过。
------解决方案--------------------
感觉如果客户端和服务端都在unix上,加与不加都是一样的。因为unix上是从1970-01-01 00:00.00开始的。
2208988800是1970-01-01 00:00.00距离1900-01-01 00:00.00的秒数。
http://www.faqs.org/rfcs/rfc868.html
------解决方案--------------------
这个应该还有其他PC系统的客户端
------解决方案--------------------
简单的搜索方法:unix epoch utc
让你清楚的明白这一切的来龙去脉
------解决方案--------------------