C语言实现NTP时间同步功能代码分享

上传:proposition95620 浏览: 9 推荐: 0 文件:c 大小:4.67KB 上传时间:2023-03-10 11:55:31 版权申诉

`

#include 
#include 
#include 
#include 
#include 

#include "lwip/opt.h"
#include "lwip/netif.h"
#include "lwip/apps/sntp.h"
#include "rtthread.h"

#define SNTP_TICK_RATE   (RT_TICK_PER_SECOND / 5)

/* Set time zone in seconds, east of UTC */
#define TIME_ZONE_SEC (8 * 3600)

static void sntp_task(void *param)
{
    /* Set up SNTP */
    sntp_init();

    /* Set server pool */
    sntp_setserver(0, "cn.pool.ntp.org");
    sntp_setoperatingmode(SNTP_OPMODE_POLL);
    sntp_setservername(0, "cn.pool.ntp.org");

    /* If less than threshold, sync with NTP immediately */
    sntp_set_syncmode(SNTP_SYNC_MODE_IMMED);

    for (;;)
    {
        /* Trigger server request update */
        sntp_request();
        rt_thread_mdelay(5000);
    }
}

void user_ntptime(time_t *timep)
{
    *timep += TIME_ZONE_SEC;
}

void user_ntp_sntp_process(const struct timeval *tv)
{
    struct tm tm_new;

    time_t ntp_time = tv->tv_sec;
    user_ntptime(&ntp_time);

    if (ntp_time >= (86400 * (365 * 70 + 17)))
    {
        localtime_r(&ntp_time, &tm_new);

        printf("ntp_time %lu = %d.%d.%d %d:%d:%d\r\n",
               ntp_time, tm_new.tm_year + 1900, tm_new.tm_mon + 1, tm_new.tm_mday,
               tm_new.tm_hour, tm_new.tm_min, tm_new.tm_sec);

        /* Set system time */
        struct timeval nw_tv;
        nw_tv.tv_sec = ntp_time;
        nw_tv.tv_usec = tv->tv_usec;
        settimeofday(&nw_tv, NULL);
    }
}

/* Entry */
int sntp_user_init(void)
{
    rt_thread_t t;

    t = rt_thread_create("sntp_task", sntp_task, RT_NULL, 512, 25, 5);
    if (t)
        rt_thread_startup(t);

    return 0;
}
上传资源
用户评论
相关推荐
C语言实现NTP时间同步
PC端可用时间同步ntp,交叉编译到板子上未测试,配置文件格式ip@132.163.4.2@ip
C
0B
2019-04-27 04:01
NTP时间同步
windwos下,NTP时间同步方法,包括客户端和服务器端
DOC
0B
2019-09-09 01:03
NTP同步时间模块
此库运用NTP获取标准的网络时间,除去了网络上的耗时,精确度可以达到10ms调用接口获取标准网络时间后只需简单调用setsystemtime就可以同步时间。
RAR
0B
2019-05-13 08:00
NTP内网时间同步
解决安卓设备内网状态无法与互联网时间同步问题,通过架设NTP服务器端口,安卓端连接内网WIFI后自动与NTP服务器时间同步。
ZIP
0B
2019-01-08 12:27
ntp同步时间
Ntp synchronization time source
CPP
0B
2019-06-26 02:15
ntp时间同步脚本
在搭建大数据平台的时候,若现场无时间服务器,因服务器间的时间不一致会导致大数据平台运行异常。(时间差不得超过4分钟)所以需要做时间同步服务。大数据平台时间同步
ZIP
0B
2019-07-19 19:03
时间同步软件NTP
Windows平台下,一款用来将不同服务器之间做时间同步的软件。安装方便,使用简单。
EXE
0B
2020-05-18 07:55
NTP时间同步工具
仅供学习之用,勿做商业用途,如有侵权,请告知删除,谢谢
RAR
229KB
2020-11-06 05:07
ntp同步时间.docx
ntp同步时间.docx
DOCX
25KB
2021-04-22 17:16
linux ntp时间同步
linux ntp 时间同步,c源码,soket c 实现
C
0B
2018-12-08 11:30
如何使用ntp时间同步服务实现网络时间同步
网络时间同步对于计算机系统的稳定性和准确性至关重要,而ntp时间同步服务是实现网络时间同步的关键。本文将介绍ntp时间同步服务的原理和使用方法,帮助读者理解和运用这一功能。首先,我们将详细解释ntp时
txt
2.02KB
2023-10-04 16:51
网络时间同步协议NTP
Network Time Synchronization Protocol NTP
PDF
0B
2019-06-26 17:07
linux时间同步ntp服务
linux时间同步ntp服务
DOCX
0B
2019-09-25 14:13
NTP服务及时间同步
Linux系统上配置NTP服务及时间同步,请有需要的朋友们尽快下载 Linux系统上配置NTP服务及时间同步,请有需要的朋友们尽快下载
DOCX
46KB
2020-11-08 18:39
在Ubuntu中使用NTP实现时间同步
主要介绍了在Ubuntu中使用NTP实现时间同步,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
PDF
72KB
2020-11-28 22:25