linux網路位元組序

2021-10-10 07:31:29 字數 471 閱讀 3005

不同的cpu有不同的儲存資料方法,分為大端方式與小端方式!小端:低位位元組存放在記憶體的低位址!大端:高位位元組存放在記憶體的高位址。因為現代pc機大都採用小端模式存放資料,故小端位元組序又名主機位元組序!有序通訊雙方位元組序有可能有差異,這就導致有可能接收資料後處理發生錯誤!故人們在傳送資料時,統一將資料轉換為大端模式進行傳送,而接收方會根據自身儲存方式的決定是否要進行位元組序的轉換!故大端位元組序又名網路位元組序!

端模式的由來出自於書籍《弗列格遊記》,其中人們從煮熟的雞蛋應該從較圓的一段開始吃 還是從較尖的一段開始吃發生了激烈的討論,書中小人國的內戰也源自於此!

linux下位元組序轉換函式:

htons:將乙個無符號短整型資料從主機位元組序轉換為網路位元組序!

ntohs:將乙個無符號短整型從網路位元組序轉換為主機位元組序!

htonl:將乙個無符號長整型資料從主機位元組序轉換為網路位元組序!

ntohl:將乙個無符號長整型資料從網路位元組序轉換為主機位元組序!

Linux 主機位元組序與網路位元組序

現在的cpu累加器一次能夠裝載至少4個位元組的乙個整數,那麼位元組在記憶體中的排列順序不同,導致累加器使用的結果不同,這就是位元組序問題 例如 我們儲存乙個int型別的數字 int a 1 大端位元組序 整數的高位位元組存放在記憶體的低位址位。小端位元組序 整數的低位位元組存放在記憶體位址的低位址為...

Linux網路程式設計 主機位元組序 與 網路位元組序

網域名稱轉換ip位址 首先需要理解大端模式與小端模式這兩個點 這兩種模式代表著資料在記憶體中是如何存放的,我們直到,乙個位元組能夠存放8位,如果是超過8位的資料該怎樣存放呢?如需要存放資料 0x12345678 不難看出,大端模式也就是高位優先存放,小端模式也就是低位優先存放。下面學習兩類函式 ht...

位元組序和網路位元組序

1 位元組序 由於不同的計算機系統採用不同的位元組序儲存資料,同樣乙個4位元組的32位整數,在記憶體中儲存的方式就不同.位元組序分為小尾位元組序 little endian 和大尾位元組序 big endian intel處理器大多數使用小尾位元組序,motorola處理器大多數使用大尾 big e...