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

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>
            欧美/亚洲一区| 亚洲精品欧美一区二区三区| 久久久欧美精品| 性欧美videos另类喷潮| 亚洲欧美影院| 久久国产一区二区三区| 久久久久国产免费免费| 免费看亚洲片| 亚洲国产精品一区二区第一页 | 欧美高清视频| 欧美人与性动交α欧美精品济南到| 欧美精品久久久久久| 欧美性猛交视频| 国内精品视频一区| 亚洲开发第一视频在线播放| 亚洲欧美日韩国产中文在线| 麻豆久久婷婷| aa成人免费视频| 久久久蜜桃精品| 欧美性开放视频| 亚洲国产成人91精品| 亚洲综合精品一区二区| 蜜臀av在线播放一区二区三区| 亚洲精品中文字幕女同| 亚洲影音一区| 欧美精品黄色| 亚洲成人资源| 欧美在线视频网站| 亚洲人成在线观看| 久久精品中文| 国产精品一区二区黑丝| 亚洲免费观看| 免费精品99久久国产综合精品| 中文在线一区| 欧美精品亚洲| 亚洲高清一区二| 国产精品青草综合久久久久99| 黄色精品在线看| 亚洲在线不卡| 亚洲精品日产精品乱码不卡| 久久久久国产精品麻豆ai换脸| 欧美午夜不卡视频| 亚洲欧洲精品一区| 久久综合一区| 欧美一区在线直播| 国产精品美女久久福利网站| 日韩视频一区二区| 久久伊人一区二区| 欧美亚洲一区三区| 国产欧美一区二区精品性| 一本大道久久a久久综合婷婷| 免费国产自线拍一欧美视频| 午夜精品一区二区三区在线视| 欧美日韩国产综合一区二区| 亚洲日韩第九十九页| 美女国内精品自产拍在线播放| 在线综合欧美| 日韩一区二区高清| 欧美肉体xxxx裸体137大胆| 亚洲区一区二| 亚洲人永久免费| 欧美屁股在线| 一区二区三区精品国产| 亚洲看片网站| 国产精品xvideos88| 午夜精品视频| 欧美一级专区| 国语对白精品一区二区| 久久亚洲高清| 久久精品国产2020观看福利| 精品动漫一区| 欧美大片在线看免费观看| 欧美成人国产| 正在播放亚洲一区| 亚洲特色特黄| 国产一区二区久久精品| 久久人人爽人人爽爽久久| 久久精品国产69国产精品亚洲| 红桃视频成人| 亚洲福利在线看| 欧美午夜不卡视频| 久久精品国产99国产精品| 久久成人18免费网站| 亚洲国产天堂久久综合网| 亚洲精品久久久久久一区二区| 欧美日韩一二区| 欧美一区二区三区成人| 久久精品视频亚洲| 亚洲精品资源| 亚洲专区在线视频| 激情综合五月天| 亚洲日本电影在线| 国产欧美日韩在线视频| 蜜臀av一级做a爰片久久| 欧美日韩一区在线| 久久久综合精品| 欧美连裤袜在线视频| 香蕉av福利精品导航| 久久亚洲一区二区三区四区| 欧美伦理a级免费电影| 亚洲欧美日韩国产中文在线| 久久久久久97三级| 亚洲一区二区三区精品动漫| 欧美一区国产在线| 一区二区三区国产精品| 欧美亚洲一区二区在线观看| 日韩午夜精品视频| 久久久精品999| 亚洲欧美区自拍先锋| 久久在线播放| 午夜影院日韩| 欧美激情一区二区三区在线视频| 久久精品官网| 国产精品久久久久久久久免费 | 精品av久久久久电影| 亚洲高清激情| 国内精品一区二区三区| 这里只有精品在线播放| 亚洲区一区二区三区| 久久成人国产| 欧美在线影院在线视频| 欧美日韩精品一二三区| 欧美电影免费观看| 狠狠干狠狠久久| 亚洲自拍偷拍一区| 亚洲欧美一区二区三区极速播放 | 国产一区二区三区久久久久久久久| 亚洲另类视频| 亚洲免费激情| 久久综合色天天久久综合图片| 亚洲欧美国产77777| 欧美久久久久| 亚洲国产精品久久| 亚洲久久一区二区| 欧美成人午夜77777| 欧美成人综合在线| 亚洲国产精品ⅴa在线观看| 久久不见久久见免费视频1| 久久精品国产精品| 国产一区视频在线观看免费| 亚洲欧美视频在线| 久久精彩视频| 国产一二精品视频| 久久国产高清| 另类酷文…触手系列精品集v1小说| 国产日韩欧美亚洲| 久久大综合网| 欧美成人免费在线| 亚洲免费观看高清在线观看| 欧美日韩免费观看一区| 亚洲伦理在线观看| 亚洲网站在线| 国产伦精品一区二区| 欧美一二三视频| 裸体一区二区三区| 91久久精品美女高潮| 蜜臀av国产精品久久久久| 亚洲第一色在线| 在线亚洲免费视频| 国产精品日韩在线播放| 欧美一区激情| 亚洲精品久久久蜜桃| 亚洲欧美视频一区| 国产一区二区在线观看免费| 久久嫩草精品久久久精品一| 亚洲国产精品欧美一二99| 欧美夫妇交换俱乐部在线观看| 亚洲国产精品久久久久秋霞影院| 一级日韩一区在线观看| 国产日韩欧美综合一区| 久久久久国产成人精品亚洲午夜| 亚洲激情啪啪| 欧美一区二区三区四区高清 | 极品少妇一区二区三区| 一区二区国产日产| 久久视频免费观看| 亚洲美女黄色片| 国产裸体写真av一区二区| 久久综合久久综合久久综合| 亚洲精品视频一区| 欧美一区激情视频在线观看| 在线成人性视频| 国产精品国产精品| 久久精品免费电影| 在线亚洲精品福利网址导航| 久久只有精品| 国产无遮挡一区二区三区毛片日本| 欧美黄污视频| 久久九九热免费视频| 一本色道久久综合亚洲精品婷婷| 久久乐国产精品| 一本色道久久综合亚洲精品按摩| 国产综合自拍| 国产精品高清在线观看| 欧美国产一区二区在线观看| 欧美一级视频一区二区| 亚洲免费福利视频| 亚洲国产精品久久久久秋霞不卡| 久久久久免费| 欧美亚洲免费在线|