新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 嵌入式Linux網絡編程之:實驗內容——NTP協議實現

        嵌入式Linux網絡編程之:實驗內容——NTP協議實現

        作者: 時間:2013-09-13 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/257114.htm

        /*修改本地時間*/

        intset_local_time(structntp_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);

        returnsettimeofday(tv,NULL);

        }

        intmain()

        {

        intsockfd,rc;

        structaddrinfohints,*res=NULL;

        structntp_packetnew_time_packet;

        memset(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);

        return1;

        }

        /*創建套接字*/

        sockfd=socket(res->ai_family,res->ai_socktype,res->ai_protocol);

        if(sockfd0)

        {

        perror(socket);

        return1;

        }

        /*調用取得NTP時間的函數*/

        if(get_ntp_time(sockfd,res,new_time_packet))

        {

        /*調整本地時間*/

        if(!set_local_time(new_time_packet))

        {

        printf(NTPclientsuccess!n);

        }

        }

        close(sockfd);

        return0;

        }

        為了更好地觀察程序的效果,先用date命令修改一下系統時間,再運行實例程序。運行完了之后再查看系統時間,可以發現已經恢復準確的系統時間了。具體運行結果如下所示。

        $date-s2001-01-011:00:00

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

        $date

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

        $./ntp

        NTPclientsuccess!

        $date

        能夠顯示當前準確的日期和時間了!

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        上一頁 1 2 3 4 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 安泽县| 宕昌县| 重庆市| 安福县| 奉新县| 元朗区| 绥芬河市| 温泉县| 建瓯市| 五家渠市| 绵阳市| 青冈县| 凤台县| 阳信县| 延边| 措美县| 张掖市| 关岭| 平安县| 广元市| 英德市| 浮梁县| 蛟河市| 都兰县| 清丰县| 新余市| 柏乡县| 辰溪县| 佛山市| 桂东县| 上犹县| 呼图壁县| 巴南区| 平顺县| 长泰县| 大足县| 丁青县| 静宁县| 红桥区| 万安县| 辉县市|