beast单元库的总结
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限制,其它傳輸沒做
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的beast单元库的总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: git中reset与revert的区别
- 下一篇: char数组拷贝wchar数组