socket程式設計學習(二)位址轉換與套接字

2021-07-09 09:14:48 字數 844 閱讀 6276

1,in_addr_t inet_addr(const char *cp)   將ip位址轉換成乙個32位的整數

我們舉個例子

int main()

中斷的列印資訊是:

addr is 3232235876

ip 4 bytes is 64,1,a8,c0

通過inet_addr()函式,ntohl函式,我們得到了32位表示位址的資料,3232235876。

64,1,a8,c0 四個位元組轉成10進製分別是100,1,168,192

為什麼會反過來,是因為我們的x86平台的位元組序是小端模式。

2.這樣倒這看很奇怪, 於是就有了char *inet_ntoa(struct in_addr in) 可以將 網路位元組序ip位址 轉成 點分十進位制的ip位址

舉個例子

int main()

unsigned int addr2=inet_addr("192.168.1.101");

struct in_addr ipaddr;

ipaddr.s_addr = addr2;

printf("%s\n",inet_ntoa(ipaddr));

return 0;

中斷的列印資訊是:192.168.1.101

3.還有乙個相反的函式就是將 點分十進位制ip位址,轉換成 網路位元組序ip位址

int inet_aton(const char *cp,struct in_addr *inp)

4. 套接字

流式套接字 sock_stream -> tcp

資料報式套接字 sock_dgram -> udp

原始套接字sock_raw



windows遊戲程式設計《二》位址

位址有虛擬位址,邏輯位址,線性位址,實體地址!以下分別介紹下 虛擬位址 virtual address 是指由程式產生的由段選擇符和段內偏移位址兩部分組成的位址。因為這兩部分組成的位址並沒有直接用來訪問物理記憶體,而是需要通過分段位址變換機制處理或對映後才對應到物理記憶體位址上,因此這種位址被稱為虛...

Linux位址對映 3 位址轉換

部落格 fireaxe.blog.chinaunix.net 三 位址轉換 上圖揭示了程序空間 核心空間與實體地址之間的轉換關係。在linux中,實體地址用page結構表示,物理內存在初始化時已經生成了page結構管理,其他位址空間則需要生成page再進行管理 ioremap 實體地址可以被對映到核...

centos7 位址轉換

需求 內網主機通過nat訪問外網 案例 nat主機 192.168.10.100 內網ip 192.168.157.197 外網ip 內網主機 192.168.10.15 nat主機 net.ipv4.ip forward 1 sysctl p 載入配置檔案 內網主機 vim etc sysconf...