<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Calvin's Tech Space

    成于堅忍,毀于浮躁

       :: 首頁 :: 聯系 :: 聚合  :: 管理
    所有網絡協議都是采用big endian的方式來傳輸數據的。所以有時我們也會把big endian方式稱之為網絡字節序。當兩臺采用不同字節序的主機通信時,在發送數據之前都必須經過字節序的轉換成為網絡字節序后再進行傳輸。

    ???判斷小端還是大端規則的方法:

    int x = 1;
    if(*(char *)&x == 1)//取x指針強制轉換為char*類型再取值,此時取到的值是int最低字節值
    ????printf(“little-endian\n”);
    else
    ????printf(“big-endian\n”);

    ????另外補充:

    1.BIG-ENDIAN、LITTLE-ENDIAN、跟CPU有關的,每一種CPU不是BIG-ENDIAN就是LITTLE- ENDIAN、。IA架構的CPU中是Little-Endian,而PowerPC 、SPARC和Motorola處理器。這其實就是所謂的主機字節序。而網絡字節序是指數據在網絡上傳輸時是大頭還是小頭的,在Internet的網絡字 節序是BIG-ENDIAN。所謂的JAVA字節序指的是在JAVA虛擬機中多字節類型數據的存放順序,JAVA字節序也是BIG-ENDIAN。

    2.所以在用C/C++寫通信程序時,在發送數據前務必用htonl和htons去把整型和短整型的數據進行從主機字節序到網絡字節序的轉換,而接 收數據后對于整型和短整型數據則必須調用ntohl和ntohs實現從網絡字節序到主機字節序的轉換。如果通信的一方是JAVA程序、一方是C/C++程 序時,則需要在C/C++一側使用以上幾個方法進行字節序的轉換,而JAVA一側,則不需要做任何處理,因為JAVA字節序與網絡字節序都是BIG- ENDIAN,只要C/C++一側能正確進行轉換即可(發送前從主機序到網絡序,接收時反變換)。如果通信的雙方都是JAVA,則根本不用考慮字節序的問 題了。


    轉自http://www.embest.net/index.php/archives/259

    posted on 2011-11-15 15:36 calvin 閱讀(945) 評論(0)  編輯  收藏 所屬分類: C
    主站蜘蛛池模板: 亚洲成人免费在线| 日韩免费电影网站| 日韩特黄特色大片免费视频| 亚洲日本香蕉视频观看视频| 99热这里只有精品6免费| 亚洲国产精品lv| 真实国产乱子伦精品免费| 亚洲天堂久久精品| 国产成人精品免费久久久久| 亚洲av无码不卡| 1a级毛片免费观看| 亚洲国产91在线| 国产麻豆免费观看91| 理论秋霞在线看免费| 中国亚洲女人69内射少妇| 99久久99这里只有免费的精品| 亚洲日韩v无码中文字幕| 久久精品一区二区免费看| 亚洲综合久久1区2区3区| 天天摸天天操免费播放小视频 | 亚洲黄色三级网站| 国产高清不卡免费在线| 久久亚洲国产最新网站| 亚洲Av无码乱码在线znlu| 精品国产免费人成网站| 久久av无码专区亚洲av桃花岛| 国产曰批免费视频播放免费s| 亚洲精品无码久久久久牙蜜区| 四虎国产精品免费视| 免费无码作爱视频| 亚洲伊人久久大香线蕉啊| 国产伦精品一区二区三区免费迷 | 一级毛片免费观看不卡的| 亚洲avav天堂av在线网爱情| 免费a级毛片视频| 1000部羞羞禁止免费观看视频 | 亚洲免费福利在线视频| 亚洲精品和日本精品| 在免费jizzjizz在线播| 黄页网址大全免费观看12网站| 亚洲AV无码第一区二区三区|