描述
项目开发过程中,需要实现设备连接网络之后,本地时间快速同步。首先想到的是ntpd 服务,但是有时候发现ntpd 同步时间同步很慢,往往连接网络5s之后,本地时间才同步过来。这样的速度显然无法满足需求。这个时候参考 libcurl/docs/examples/synctime.c 实现的时间同步,由于libcurl 库中synctime.c是基于windows 写的,需要改写未Linux下的。 其中只的注意的是time 时间上的转换。
#include <stdio.h>
#include <sys/time.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
#include <curl/curl.h>
#include <iostream>
using namespace std;
const char *timerServer[] = {
"www.amazon.com",
"nist.time.gov",
"www.google.com"
};
const char *MthStr[] = {
"Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
extern int errno;
size_t SyncTime_CURL_WriteHeader(void *ptr