####socket網路程式設計介面
socket的位址是結構體sockaddr
**如下
struct sockaddr
sa_family 成員是位址族型別(sa_family_t)變數。
位址族型別通常與協議族型別對應
1.二者對應表
協議族位址表
描述pf_unix
af_unix
unix本地域協議族
pf_inet
af_inet
tcp/ipv4協議族
pf_inet6
af_inet6
tcp/ipv6協議族
二者定義在bits/socket.h標頭檔案,值一樣,所以二者經常混用
sa_data成員用於存放socket位址值
但是不同的協議族的位址值具有不同的含義和長度
2.協議族及其位址值
協議族位址值含義和長度
pf_unix
檔案的路徑名,長度可達108位元組
協議族位址值含義和長度
pf_inet
16bit 埠號和32bit ipv4位址
pf_unix
檔案的路徑名,長度可達108位元組
pf_inet6
16bit 埠號,32bit流標識,128bitipv6位址,32bit範圍id,共26位元組
問題:14位元組的sa_data無法容納多數協議族的位址值,因此linux定義了新的通用socket位址結構體
struct sockaddr_storage
ssalign:用於記憶體對齊
3.專用socket位址
問題: 上述通用結構體很不好用,設定與獲取ip位址和埠號需要執行繁瑣的位操作。
解決:linux為各個協議族提供了專門的socket位址結構體
3.1unix本地域協議族:
struct sockaddr_un
tcp/ip協議族有了兩個專用
struct
socketaddr_in
struct
in_addr
struct
socketaddr_in6
struct
in6_addr
4.ip位址轉換函式
ipv4:點分十進位制字串
ipv6:16進製制字串
in_addr_t inet_addr (const
char * strptr);
intinet_aton
(const
char * cp, struct in_addr * inp)
; char * inet_ntoa
(struct in_addr in)
;
高效能MySQL 讀書筆記
第4章 schema與資料型別優化 第5章 建立高效能的索引 三星索引 最左匹配原則 高效能索引策略 多列索引 mysql採用的是分層架構 上層是server層,下層是儲存引擎層。sql標準中定義了四種隔離級別 隔離級別 定義髒讀 不可重複讀 幻讀加鎖讀 讀未提交 read uncommitted,...
高效能Mysql 讀書筆記
mysql與眾不同的特性是它的儲存引擎架構,這種架構將查詢處理即其他的任務系統和資料的儲存 提取相分離.第二層架構中,大多數的mysql的核心服務功能都在這一層,包括查詢解析,分析優化,快取以及所處的內建函式,所有的跨儲存引擎的功能都在這一層實現 儲存過程,觸發器,檢視等.第三層包含mysql的儲存...
《高效能MySQL》讀書筆記之建立高效能的索引
索引是儲存引擎用於快速找到記錄的一種資料結構。索引優化是對查詢效能優化的最有效手段。索引能夠輕易將查詢效能提高幾個數量級。建立乙個最優的索引經常需要重寫查詢。5.1 索引基礎 在mysql中,儲存引擎首先在索引中找到對應值,然後根據匹配的索引記錄找到對應的資料行。索引可以包含乙個或多個列的值。如果索...