首页 > 编程知识 正文

arm嵌入式系统原理与应用答案,ntp协议详解

时间:2023-05-06 12:17:37 阅读:16793 作者:4161

正文引用来源: http://www.eepw.com.cn/article/257114.htm

/*修改本地时间*

intset _ local _ time (struct NTP _ packet * pnew _ time _ packet ) )。

{

structtimevaltv;

TV.TV _ sec=pnew _ time _ packet-transmit _ timestamp.coarse-Jan _ 1970;

TV.TV _ usec=usec (pnew _ time _ packet-transmit _ timestamp.fine );

日期返回设置(电视,空);

}

intmain () )

{

intsockfd、rc;

structaddrinfohints,*res=NULL;

struct NTP _ packet new _ time _ packet;

短信(hints,0,sizeof ) hints );

hints.ai_family=AF_UNSPEC;

hints.ai_socktype=SOCK_DGRAM;

hints.ai_protocol=IPPROTO_UDP;

getaddrinfo (调用函数并获取地址信息) /

RC=getaddrinfo(NTP_server_IP,NTP_PORT_STR,hints,res );

if(RC!=0)

{

perror(getaddrinfo;

返回1;

}

/*创建套接字*

sockfd=socket(RES-AI_family,res-ai_socktype,res-ai_protocol );

是if(sockfd0)

{

perror (套接字);

返回1;

}

/*调用获取NTP时间的函数*

if(get_NTP_time(sockfd,res,new_time_packet ) )

{

/*调整当地时间*

if (! set_local_time(new_time_packet ) )

{

printf (NTP客户端成功! n );

}

}

关闭(sockfd;

返回0;

}

为了更好地看到程序的效果,请使用date命令修改系统时间,然后运行实例程序。 运行结束后查看系统时间,可以看到已返回到正确的系统时间。 具体运行结果如下。

$date-s2001-01-011336000:00

2001年01月01日星期一01:00:00EST

$日期

2001年01月01日星期一01:00:00EST

$./ntp

NTP客户端success!

$日期

现在可以显示当前的正确日期和时间了!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。