青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Young's Blog

包子鋪

使用Bit Field的教訓(xùn)

總結(jié)一下,長(zhǎng)點(diǎn)記性:
Bit Field總是從低地址往高地址計(jì)算。

DNS的網(wǎng)絡(luò)數(shù)據(jù)中有兩個(gè)字節(jié)的標(biāo)志位(下面來(lái)自真實(shí)數(shù)據(jù)):
0x81 0x80
這個(gè)標(biāo)志位分別表示:
1... .... .... .... = Response: Message is a response
.000 0... .... .... = Opcode: Standard query (0)
.... .0.. .... .... = Authoritative: Server is not an authority for domain
.... ..0. .... .... = Truncated: Message is not truncated
.... ...1 .... .... = Recursion desired: Do query recursively
.... .... 1... .... = Recursion available: Server can do recursive queries
.... .... .0.. .... = Z: reserved (0)
.... .... ..0. .... = Answer authenticated: Answer/authority portion was not authenticated by the server
.... .... .... 0000 = Reply code: No error (0)

想都沒(méi)有再想,下意識(shí)地寫(xiě)了下面的結(jié)構(gòu)體(惡夢(mèng)開(kāi)始了):
struct NetworkOrder
{
union{
unsigned short Flags;
struct{
unsigned short Response:1;
unsigned short Opcode:4;
unsigned short Authoritative:1;
unsigned short Truncated:1;
unsigned short RecursionDesired:1;
unsigned short RecursionAvailable:1;
unsigned short Zero:1;
unsigned short AnswerAuthenticated:1;
unsigned short Pad:1;
unsigned short ReplyCode:4;
};
};
};

解析結(jié)果當(dāng)然不對(duì):
{
Flags = 0x8081,
{
Response = 0x1,
Opcode = 0x0,
Authoritative = 0x0,
Truncated = 0x0,
RecursionDesired = 0x1,
RecursionAvailable = 0x0,
Zero = 0x0,
AnswerAuthenticated = 0x0,
Pad = 0x0,
ReplyCode = 0x8
}
}

然后又下意識(shí)地想(其實(shí)根本沒(méi)有經(jīng)過(guò)想的過(guò)程,要不然也不會(huì)這么慘了),可能是字節(jié)序的問(wèn)題,換成主機(jī)序:
struct NetworkOrder
{
    union{
        unsigned short Flags;
        struct{
            unsigned short Response:1;
            unsigned short Opcode:4;
            unsigned short Authoritative:1;
            unsigned short Truncated:1;
            unsigned short RecursionDesired:1;

            unsigned short RecursionAvailable:1;
            unsigned short Zero:1;
            unsigned short AnswerAuthenticated:1;
            unsigned short Pad:1;
            unsigned short ReplyCode:4;
        };  
    };  
};

我靠,結(jié)果還不對(duì):
{
Flags = 0x8081,
{
Response = 0x1,
Opcode = 0x0,
Authoritative = 0x0,
Truncated = 0x0,
RecursionDesired = 0x1,

RecursionAvailable = 0x0,
Zero = 0x0,
AnswerAuthenticated = 0x0,
Pad = 0x0,
ReplyCode = 0x8
}
}

這個(gè)時(shí)候背上直冒冷汗,這么簡(jiǎn)單的問(wèn)題自己都沒(méi)搞定,快速?gòu)哪X海中掃了一遍char、short、int在處理數(shù)據(jù)上的差異......想了半天,
只好用最后的笨辦法了,看一下到底是怎么回事,再次改變一下結(jié)構(gòu):
struct NetworkOrder3
{
    union{
        unsigned short Flags;
        struct{
            unsigned short A0:1;
            unsigned short A1:1;
            unsigned short A2:1;
            unsigned short A3:1;

            unsigned short B0:1;
            unsigned short B1:1;
            unsigned short B2:1;
            unsigned short B3:1;

            unsigned short C0:1;
            unsigned short C1:1;
            unsigned short C2:1;
            unsigned short C3:1;

            unsigned short D0:1;
            unsigned short D1:1;
            unsigned short D2:1;
            unsigned short D3:1;
        };
    };
};
結(jié)果出來(lái)一看,恍然大悟:
{
Flags = 0x8081,
{
A0 = 0x1,
A1 = 0x0,
A2 = 0x0,
A3 = 0x0,

B0 = 0x0,
B1 = 0x0,
B2 = 0x0,
B3 = 0x1,

C0 = 0x0,
C1 = 0x0,
C2 = 0x0, 
C3 = 0x0,

D0 = 0x0,
D1 = 0x0,
D2 = 0x0,
D3 = 0x1
}
}
我靠,平時(shí)Bit Field用得少,老是一個(gè)字節(jié),兩個(gè)字節(jié)地考慮,忘了它從低地址開(kāi)始一位一位往上計(jì)算的,修改最后的結(jié)構(gòu),得到正確的結(jié)果:
struct NetworkOrder4
{
    union{
        unsigned short Flags;
        struct{
            unsigned short RecursionDesired:1;
            unsigned short Truncated:1;
            unsigned short Authoritative:1;
            unsigned short Opcode:4;
            unsigned short Response:1;

            unsigned short ReplyCode:4;
            unsigned short Pad:1;
            unsigned short AnswerAuthenticated:1;
            unsigned short Zero:1;
            unsigned short RecursionAvailable:1;
        };
    };
};
結(jié)果:
{
Flags = 0x8081,
{
RecursionDesired = 0x1,
Truncated = 0x0,
Authoritative = 0x0,
Opcode = 0x0,
Response = 0x1,

ReplyCode = 0x0,
Pad = 0x0,
AnswerAuthenticated = 0x0,
Zero = 0x0,
RecursionAvailable = 0x1
}
}

真是慚愧啊,好記性不如爛筆頭,記在這里引以為簽。




posted on 2010-01-31 00:00 Young 閱讀(793) 評(píng)論(1)  編輯 收藏 引用

Feedback

# re: 使用Bit Field的教訓(xùn) 2010-02-08 16:37 ABC

更新好慢啊。。。  回復(fù)  更多評(píng)論   


只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国模套图日韩精品一区二区| 亚洲已满18点击进入久久| 尤物九九久久国产精品的分类| 欧美色播在线播放| 欧美日韩日本国产亚洲在线| 欧美偷拍一区二区| 欧美日韩小视频| 国产精品videosex极品| 国产精品久久久一区麻豆最新章节 | 国产精一区二区三区| 国产精品免费aⅴ片在线观看| 亚洲欧美制服另类日韩| 亚洲级视频在线观看免费1级| 国产亚洲欧美日韩日本| 欧美精品一区三区| 乱中年女人伦av一区二区| 亚洲激情第一区| 免费短视频成人日韩| 欧美激情一区| 一区二区三区波多野结衣在线观看| 一区二区久久| 99ri日韩精品视频| 亚洲精品综合精品自拍| 在线视频精品一| 久久久久久久综合色一本| 永久域名在线精品| 噜噜噜久久亚洲精品国产品小说| 欧美在线影院在线视频| 欧美一区二区精品在线| 欧美一区二区三区四区在线观看地址| 老妇喷水一区二区三区| 午夜精品99久久免费| 欧美激情综合五月色丁香| 午夜视频一区二区| 国产精品免费aⅴ片在线观看| 欧美大片第1页| 欧美日韩国产一区二区三区地区| 欧美午夜久久| 在线观看日韩av电影| 99精品国产高清一区二区| 黄色资源网久久资源365| 欧美男人的天堂| 亚洲午夜精品| 在线亚洲激情| 狼人社综合社区| 日韩视频一区二区三区| 欧美一激情一区二区三区| 欧美精品日本| 亚洲国产成人久久综合一区| 亚洲欧美精品一区| 亚洲国产精品成人一区二区| 亚洲欧美视频一区| 欧美视频在线观看视频极品 | 亚洲国产精品久久久久婷婷老年| 亚洲欧美激情一区| 欧美亚男人的天堂| 亚洲少妇一区| 日韩视频免费| 欧美日韩国产精品| 99国产一区二区三精品乱码| 欧美韩日视频| 免费观看国产成人| 亚洲日本理论电影| 亚洲国产另类 国产精品国产免费| 久久久7777| 在线播放一区| 欧美高清在线播放| 欧美18av| 亚洲婷婷在线| 亚洲一区二区三区欧美| 国产精品丝袜白浆摸在线| 午夜激情久久久| 午夜精品久久久久久久| 一本色道久久加勒比88综合| 欧美日韩中文在线观看| 亚洲视频在线看| 在线午夜精品自拍| 国产精品欧美在线| 久久精品综合一区| 久久久久国产精品www| 樱桃视频在线观看一区| 欧美电影在线播放| 欧美精品日韩综合在线| 亚洲图色在线| 性欧美xxxx大乳国产app| 精品动漫3d一区二区三区免费版 | 亚洲欧美日韩一区二区在线 | 中文精品一区二区三区| 亚洲一区免费看| 国内精品一区二区| 亚洲国产成人av| 欧美三级日本三级少妇99| 午夜久久美女| 亚洲女女做受ⅹxx高潮| 国产欧美一区二区在线观看| 小黄鸭精品密入口导航| 久久久www免费人成黑人精品| 亚洲国产福利在线| 野花国产精品入口| 合欧美一区二区三区| 亚洲国产三级| 国产日韩欧美成人| 亚洲福利免费| 国产日韩欧美一区二区三区四区| 欧美成年人视频网站| 国产精品久久9| 欧美激情麻豆| 国产亚洲精品v| 亚洲美女在线观看| 亚洲国产成人在线播放| 亚洲一区二区不卡免费| 亚洲国产国产亚洲一二三| 亚洲一区日韩在线| 日韩亚洲视频在线| 久久久久欧美精品| 欧美一区综合| 欧美色欧美亚洲另类二区| 欧美大香线蕉线伊人久久国产精品| 欧美午夜寂寞影院| 亚洲国产综合91精品麻豆| 国产一区二区三区直播精品电影 | 欧美高清不卡在线| 国产精品一区一区| 日韩亚洲欧美在线观看| 亚洲激情国产| 久久久久久久综合| 久久久99爱| 国产精品系列在线播放| 99精品福利视频| 日韩视频在线观看一区二区| 久久天天躁狠狠躁夜夜爽蜜月| 欧美在线影院在线视频| 国产精品扒开腿做爽爽爽视频| 91久久精品国产91性色| 亚洲国产欧美日韩另类综合| 久久久精品性| 久久综合激情| 精品动漫3d一区二区三区免费| 欧美在线观看视频| 久久久久久尹人网香蕉| 国产一区99| 久久国产精品久久国产精品 | 亚洲人成77777在线观看网| 亚洲欧洲精品一区二区三区不卡 | 狠狠88综合久久久久综合网| 午夜宅男久久久| 久久国产精彩视频| 国产在线乱码一区二区三区| 欧美一区二区视频免费观看| 久久精品视频免费观看| 狠狠做深爱婷婷久久综合一区 | 午夜欧美精品| 国产亚洲欧美在线| 欧美一区国产一区| 久久蜜桃资源一区二区老牛| 一区二区三区在线看| 免费永久网站黄欧美| 欧美激情第三页| 99亚洲视频| 国产美女精品免费电影| 久久九九国产精品怡红院| 欧美大片在线看免费观看| 日韩亚洲欧美一区二区三区| 欧美日韩一级黄| 午夜精品美女久久久久av福利| 久久久综合视频| 亚洲人在线视频| 国产精品久久999| 久久精品一区二区三区四区| 亚洲国产中文字幕在线观看| 亚洲欧美日韩国产成人| 国产日韩欧美一区二区三区在线观看| 久久精品国产久精国产一老狼| 亚洲电影激情视频网站| 亚洲综合色婷婷| 国产综合欧美| 欧美日韩播放| 久久精品国产久精国产思思| 99精品视频一区二区三区| 久久视频在线视频| 亚洲午夜伦理| 在线精品视频一区二区| 国产精品家教| 欧美激情一区二区| 久久九九国产| 亚洲欧美在线视频观看| 亚洲精品一区在线观看| 美女诱惑黄网站一区| 欧美一级片一区| 一区二区日韩伦理片| 亚洲高清123| 国产一区激情| 国产精品一区二区三区久久 | 欧美国产在线视频| 欧美怡红院视频| 一区二区三区日韩精品视频| 欧美激情bt| 久久亚洲综合色| 羞羞漫画18久久大片| 亚洲色无码播放|