beast單元庫的總結

2021-10-11 14:28:40 字數 742 閱讀 7943

1:凡是帶有async_read 和async_write 開頭都是阻塞的,因為在向socket底層讀寫緩衝區時,一定要讀完指定的大小位置,因為底層寫了乙個for迴圈

2:如果要使用async_read_some開頭的函式,一定要使用先讀寫包頭,再讀寫包體的思想

3:在使用先讀寫包頭,再讀寫包體的思想時,不要忘記ec判斷(也就是beast::http::error::need_buffer),此錯誤,不是真正的錯誤,可以理解為beast單元庫的提示錯誤

4:beast單元庫中的async_read_some 使用時,會造成資料讀取不全,關鍵看得看場景(本人使用beast單元庫時,喜歡在server端角色,使用async_read_some開頭的函式,不在client端使用async_read_some開頭的函式)

5:http::xx_parserhttp::buffer_body(request和response) 用這類解析器時,如果想要快速的拿資料,可以建議調大char buffer陣列

6:beast單元庫,入門門檻比較高(本作者也在摸索階段,我主要用beast單元庫開發http和https相關**),因此難免會遇到很多的坑,需要靜下心來分析問題

7:http::xx_parserhttp::buffer_body(request和response) 用這類解析器時,注意body_limit 時對chunked 方式傳輸做限制的

8:目前beast的版本存在body_limit 對chunked方式傳輸做body_limit限制,其它傳輸沒做

四單元總結 OO總結

目錄架構設計總結 對測試演進 課程收穫 改進建議 線上學習體驗 第一次作業 第一次作業按照uml正常的結構來組織,把某些uml中非底層類提取出來構建方法,採用逐層關聯的方式實現內部的層次關係,同時考慮將來的需求,把一些沒有用到的類也提取出來。第二次作業 和第一次作業差別不大,任然是逐層關聯的方式,每...

第八單元總結

第八單元總結 一.系統服務的控制 1.systemd 系統初始化程式,系統開始的第乙個程序,pid為1 2.systemctl 命令 systemctl list units 列出當前系統服務的狀態 systemctl list unit files 列出服務的開機狀態 systemctl stat...

表單元素的操作總結

關於表單元素的各種操作總結,以備日後查閱。input輸入框 testinput name gender title 性別 獲取值 testinput val 設定值 testinput val 男 設定唯讀 testinput attr readonly readonly textarea text...