在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式Linux網(wǎng)絡(luò)編程之:實(shí)驗(yàn)內(nèi)容——NTP協(xié)議實(shí)現(xiàn)

            嵌入式Linux網(wǎng)絡(luò)編程之:實(shí)驗(yàn)內(nèi)容——NTP協(xié)議實(shí)現(xiàn)

            作者: 時(shí)間:2013-09-13 來(lái)源:網(wǎng)絡(luò) 收藏

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

            (2)編寫(xiě)程序。

            具體代碼如下:

            /*ntp.c*/

            #includesys/socket.h>

            #includesys/wait.h>

            #includestdio.h>

            #includestdlib.h>

            #includeerrno.h>

            #includestring.h>

            #includesys/un.h>

            #includesys/time.h>

            #includesys/ioctl.h>

            #includeunistd.h>

            #includenetinet/in.h>

            #includestring.h>

            #includenetdb.h>

            #defineNTP_PORT123/*NTP專用端口號(hào)字符串*/

            #defineTIME_PORT37/*TIME/UDP端口號(hào)*/

            #defineNTP_SERVER_IP210.72.145.44/*國(guó)家授時(shí)中心IP*/

            #defineNTP_PORT_STR123/*NTP專用端口號(hào)字符串*/

            #defineNTPV1NTP/V1/*協(xié)議及其版本號(hào)*/

            #defineNTPV2NTP/V2

            #defineNTPV3NTP/V3

            #defineNTPV4NTP/V4

            #defineTIMETIME/UDP

            #defineNTP_PCK_LEN48

            #defineLI0

            #defineVN3

            #defineMODE3

            #defineSTRATUM0

            #definePOLL4

            #definePREC-6

            #defineJAN_19700x83aa7e80/*1900年~1970年之間的時(shí)間秒數(shù)*/

            #defineNTPFRAC(x)(4294*(x)+((1981*(x))>>11))

            #defineUSEC(x)(((x)>>12)-759*((((x)>>10)+32768)>>16))

            typedefstruct_ntp_time

            {

            unsignedintcoarse;

            unsignedintfine;

            }ntp_time;

            structntp_packet

            {

            unsignedcharleap_ver_mode;

            unsignedcharstartum;

            charpoll;

            charprecision;

            introot_delay;

            introot_dispersion;

            intreference_identifier;

            ntp_timereference_timestamp;

            ntp_timeoriginage_timestamp;

            ntp_timereceive_timestamp;

            ntp_timetransmit_timestamp;

            };

            charprotocol[32];

            /*構(gòu)建包*/

            intconstruct_packet(char*packet)

            {

            charversion=1;

            longtmp_wrd;

            intport;

            time_ttimer;

            strcpy(protocol,NTPV3);

            /*判斷協(xié)議版本*/

            if(!strcmp(protocol,NTPV1)||!strcmp(protocol,NTPV2)

            ||!strcmp(protocol,NTPV3)||!strcmp(protocol,NTPV4))

            {

            memset(packet,0,NTP_PCK_LEN);

            port=NTP_PORT;

            /*設(shè)置16字節(jié)的包頭*/

            version=protocol[6]-0x30;

            tmp_wrd=htonl((LI30)|(version27)

            |(MODE24)|(STRATUM16)|(POLL8)|(PREC0xff));

            memcpy(packet,tmp_wrd,sizeof(tmp_wrd));

            /*設(shè)置RootDelay、RootDispersion和ReferenceIndentifier*/

            tmp_wrd=htonl(116);

            memcpy(packet[4],tmp_wrd,sizeof(tmp_wrd));

            memcpy(packet[8],tmp_wrd,sizeof(tmp_wrd));

            /*設(shè)置Timestamp部分*/

            time(timer);

            /*設(shè)置TransmitTimestampcoarse*/

            tmp_wrd=htonl(JAN_1970+(long)timer);

            memcpy(packet[40],tmp_wrd,sizeof(tmp_wrd));

            /*設(shè)置TransmitTimestampfine*/

            tmp_wrd=htonl((long)NTPFRAC(timer));

            memcpy(packet[44],tmp_wrd,sizeof(tmp_wrd));

            returnNTP_PCK_LEN;

            }

            elseif(!strcmp(protocol,TIME))/*TIME/UDP*/

            {

            port=TIME_PORT;

            memset(packet,0,4);

            return4;

            }

            return0;

            }

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


            評(píng)論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉