關於htonl()
阿新 • • 發佈:2017-08-09
n) 主機 endian dia htm 轉換 常用 ddr content
uint16_t htons(uint16_t hostshort);
htons的功能:
將一個無符號短整型數值轉換為網絡字節序,即大端模式(big-endian) 參數u_short hostshort: 16位無符號整數 返回值:
TCP / IP網絡字節順序.
htons 是把你機器上的整數轉換成“網絡字節序”, 網絡字節序是 big-endian,也就是整數的高位字節存放在內存的低地址處。 而我們常用的 x86 CPU (intel, AMD) 電腦是 little-endian,也就是整數的低位字節放在內存的低字節處。
舉個例子:
假定你的port是 0x1234, 在網絡字節序裏 這個port放到內存中就應該顯示成 addr addr+1 0x12 0x34 而在x86電腦上,0x1234放到內存中實際是: addr addr+1 0x34 0x12 htons 的用處就是把實際內存中的整數存放方式調整成“網絡字節序”的方式。
簡述: 將主機的無符號長整形數轉換成網絡字節順序。
#include <arpa/inet.h>
uint32_t htonl(uint32_t hostlong);
hostlong:主機字節順序表達的32位數。
註釋:
本函數將一個32位數從主機字節順序轉換成網絡字節順序。
返回值:
htonl()返回一個網絡字節順序的值。
參見:
htons(), ntohl(), ntohs().
在Linux系統下:
#include <arpa/inet.h>
uint32_t htonl(uint32_t hostlong);
相關函數: uint16_t htons(uint16_t hostshort); uint32_t ntohl(uint32_t netlong); uint16_t ntohs(uint16_t netshort); 網際協議在處理這些多字節整數時,使用大端字節序。 在主機本身就使用大端字節序時,這些函數通常被定義為空宏。
htons
#include <arpa/inet.h>uint16_t htons(uint16_t hostshort);
htons的功能:
將一個無符號短整型數值轉換為網絡字節序,即大端模式(big-endian) 參數u_short hostshort: 16位無符號整數 返回值:
TCP / IP網絡字節順序.
htons 是把你機器上的整數轉換成“網絡字節序”, 網絡字節序是 big-endian,也就是整數的高位字節存放在內存的低地址處。 而我們常用的 x86 CPU (intel, AMD) 電腦是 little-endian,也就是整數的低位字節放在內存的低字節處。
舉個例子:
假定你的port是 0x1234, 在網絡字節序裏 這個port放到內存中就應該顯示成 addr addr+1 0x12 0x34 而在x86電腦上,0x1234放到內存中實際是: addr addr+1 0x34 0x12 htons 的用處就是把實際內存中的整數存放方式調整成“網絡字節序”的方式。
htonl()
#include <arpa/inet.h>
uint32_t htonl(uint32_t hostlong);
hostlong:主機字節順序表達的32位數。
註釋:
本函數將一個32位數從主機字節順序轉換成網絡字節順序。
返回值:
htonl()返回一個網絡字節順序的值。
參見:
htons(), ntohl(), ntohs().
在Linux系統下:
#include <arpa/inet.h>
uint32_t htonl(uint32_t hostlong);
相關函數: uint16_t htons(uint16_t hostshort); uint32_t ntohl(uint32_t netlong); uint16_t ntohs(uint16_t netshort); 網際協議在處理這些多字節整數時,使用大端字節序。 在主機本身就使用大端字節序時,這些函數通常被定義為空宏。
關於htonl()