六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

對于網絡字節序與主機字節序的轉換

[摘要]主機和網絡字節序的轉換最近使用C#進行網絡開發,需要處理ISO8583報文,由于其中有些域是數值型的,于是在傳輸的時候涉及到了字節序的轉換。字節順序是指占內存多于一個字節類型的數據在內存中的存放順序...
主機和網絡字節序的轉換

最近使用C#進行網絡開發,需要處理ISO8583報文,由于其中有些域是數值型的,于是在傳輸的時候涉及到了字節序的轉換。字節順序是指占內存多于一個字節類型的數據在內存中的存放順序,通常有兩種字節順序,根據他們所處的位置我們分別稱為主機節序和網絡字節序。

通常我們認為網絡字節序為標準順序,封包的時候,將主機字節序轉換為網絡字節序,拆包的時候要將網絡字節序轉換為主機字節序。原以為還要自己寫函數,其實網絡庫已經提供了。

主機到網絡:short/int/long IPAddress.HostToNetworkOrder(short/int/long)

網絡到主機:short/int/long IPAddress.NetworkToHostOrder(short/int/long)



主機字節序指低字節數據存放在內存低地址處,高字節數據存放在內存高地址處,如:

int x=1; //此時x為主機字節序:[1][0][0][0] 低位到高位

int y=65536 //此時y為主機字節序:[0][0][1][0] 低位到高位

我們通過主機到網絡字節序的轉換函數分別對x和y進行轉換得到他們對應的網絡字節序值,網絡節序是高字節數據存放在低地址處,低字節數據存放在高地址處,如:

int m=IPAddress.HostToNetworkOrder(x);

//此時m為主機字節序:[0][0][0][1] 高位到低位

int n=IPAddress.HostToNetworkOrder(y);

//此時n為主機字節序:[0][1][0][0] 高位到低位



經過轉換以后,我們就可以通過

byte[]btValue=BitConverter.GetBytes(m);

得到一個長度為4的byte數組,然后將這個數組設置到報文的相應位置發送出去即可。

同樣,收到報文后,可以將報文按域拆分,得到btValue,使用

int m=BitConverter.ToInt32(btValue,0);//從btValue的第0位開始轉換

得到該域的值,此時還不能直接使用,應該再用網絡到主機字節序的轉換函數進行轉換:

int x=IPAddress.NetworkToHostOrder(m);

這時得到的x才是報文中的實際值。



第一次用C#做項目,也是第一次發文,恐難入眾高手法眼,懇請不吝賜教。




主站蜘蛛池模板: 日韩欧美三级在线 | 一区二区福利视频 | 一区二区三区视频免费观看 | 亚洲午夜综合网 | 欧美一级视频免费观看 | 热久久国产欧美一区二区精品 | 五月天色婷婷丁香 | 全免费观看一级 | 性爽视频 | 四虎成人免费网站在线 | 亚洲精品第四页中文字幕 | 奇米狠狠色 | 午夜免费观看_视频在线观看 | 色呦呦在线观看视频 | 青草久草 | 全免费a级毛片免费看不卡 全黄一级片 | 亚洲人色| 亚洲国产欧美在线人成app | 青青国产成人久久91网 | 亚洲人网 | 青娱乐九色 | 亚洲91| 亚洲v欧美| 性生生活三级视频观看 | 日韩免费不卡 | 午夜无遮挡怕怕怕免费视频 | 日本最新免费二区 | 天天躁日日躁狠狠躁一级毛片 | 青青草手机视频在线观看 | 我要色综合网 | 欧美午夜色大片在线观看免费 | 日本久久久久久久久久 | 日本亚欧乱色视频在线观看 | 视频一区在线 | 欧美亚洲免费久久久 | 中文字幕视频在线 | 啪啪网站色大全免费 | 四虎永久免费影院在线 | 青青伊人精品 | 伊人精品久久久大香线蕉99 | 视频二区中文字幕 |