要學習socket位址先要理解主機位元組序和網路位元組序。
什麼是主機位元組序和網路位元組序???
| |
// 學習之前了解大小端位元組序:
以整數 int i=1 為例:
大端位元組序:記憶體的高位址存乙個數的低位位元組(0-7bit),記憶體的低位址存這個數的高位位元組(23-31bit)。
小端位元組序:記憶體的高位址存乙個數的高位位元組(23-31bit),記憶體的低位址存乙個數的低位位元組。
判斷大小端的函式為:
int checksystem()
c; c.i=1;
return c.ch;
} ///
現代pc大多採用小端位元組序,因此小端位元組序又被稱為主機位元組序。
大端位元組序稱為網路位元組序。
所以在兩台使用不同位元組序的主機之間傳遞資料時,我們要完成這兩個位元組序的轉化,標準統一後方可進行資料的傳遞。
so,在linux下有4個函式來完成主機位元組序和網路位元組序之間的轉換。
主機位元組序資料轉化為網路位元組序:
unsigned long int htonl(unsigned long int hostlong);
unsigned short int htons(unsigned short int hostshort);
網路位元組序轉化為主機位元組序:
unsigned long int ntohl(unsigned long int netlong);
unsigned short int ntohs(unsigned short int netshort);
linux高效能伺服器程式設計
linux高效能伺服器程式設計 當當網 亞馬遜 目錄 第一章 tcp ip協議族 第二章 ip協議族 第三章 tcp協議詳解 第四章 tcp ip通訊案例 訪問internet 第五章 linux網路程式設計基礎api 第六章 高階io函式 第七章 linux伺服器程式規範 第八章 高效能伺服器框架...
linux 高效能伺服器程式設計
1.高效能定時器 時間輪,時間堆 處理超時時間,如nginx使用紅黑樹,找出最可能超時的事件 2.高效能伺服器程式框架 nginx 使用的是基於事件模型,epoll,不阻塞,非同步處理 兩種高效的事件處理模式 reactor模式 proactor模式 兩種高效的併發模式 半同步 半非同步模式 領導者...
linux高效能伺服器程式設計(1)
linux網路程式設計基礎api 1 socket位址api 2 sockt基礎api sockt的api全部定義在sys socket.h檔案中,包括 建立socket,命名socket,監聽socket,接受連線,發起連線,讀寫資料,獲取位址資訊,檢測帶外標記,以及讀取和設定socket選項。3...