從零實現http (2)zlib使用

2021-10-24 07:51:21 字數 1497 閱讀 3626

一、zlib常用函式

常用資料結構:

typedef

struct z_stream_sz_stream;

壓縮初始化:

int deflateinit2 (z_streamp strm,

int level,

int method,

int windowbits,

int memlevel,

int strategy)

;strm: 關聯的資料結構

level: 壓縮級別,壓縮級別是乙個0

-9的數字,0壓縮速度最快(壓縮的過程),9壓縮速度最慢,壓縮率最大,0不壓縮數

method: 壓縮的模式,現在只有一種。z_deflated(表示數字8)

windowbits: 表示處理raw deflate的方法。windowbits為8.

.15,也可以為-8..

.-15。當值為16時,將會加上乙個簡單gzip頭部和尾部。

memlevel:指定的內部壓縮狀態,應該分配多少記憶體。 memlevel=

1使用的最小記憶體,但很慢,降低了壓縮比; memlevel=

9使用的最大記憶體以獲得最佳的速度。預設值是8。請參閱作為的函式windowbits和memlevel的使用的總記憶體zconf.h。

strategy:壓縮的策略

壓縮:

int

deflate

(z_streamp strm,

int flush)

;strm:關聯的資料結構,要壓縮的資料、長度、壓縮資料的存放位置和可用大小,都在其中設定的

flush: 採用何種法師將壓縮的資料寫到緩衝區中。

壓縮結束:

int deflateend (z_streamp strm)

;//關聯的資料結構

二、url的組成

80/path/to/myfile.html?key1=value1&key2=value2#somewhereinthedocument協議、網域名稱、埠、伺服器上的檔案路徑、引數

三、正規表示式的使用

std::regex pattern

("^"

+i.first+

"|")

;//定義要匹配的字元

std::cmatch m;

//匹配完成得到的結果

bool std::

regex_search

(url.

c_str()

,m.pattern)

;//搜尋

從零實現http (1)以oop的方式實現http

一 http報文結構 二 具體實現 建立 繫結 監聽埠 執行緒函式,http解析函式 listen第二個引數為連線請求佇列長度,5代表最多同時接受5個連線請求 返回的報文整體內容 該http請求方法 string url 請求url string version http版本,實現的是http1.1...

從零實現 SD卡

cubemx軟體版本是v4.23.0,晶元型號是stm32f103zet6,sd卡是閃迪的64g tf卡,然後用了轉大卡的卡槽。我起初是按照原子的實驗去做,先驗證自己的sd卡是好使的。我買的閃迪64g tf卡,用tf卡轉sd卡槽,充當sd卡。stm32f103支援sdio,這個sdio就如同fmc支...

從零學習Swift 2

定義let 定義常量,一經賦值不允許再修改 var 定義變數,賦值之後仍然可以修改 常量 定義常量並且直接設定數值 let x 20 常量數值一經設定,不能修改,以下 會報錯 x 30 使用 型別 僅僅只定義型別,而沒有設定數值 let x1 int 常量有一次設定數值的機會,以下 沒有問題,因為 ...