beast单元库的总结
1:凡是帶有async_read 和async_write 開頭都是阻塞的,因?yàn)樵谙騭ocket底層讀寫緩沖區(qū)時(shí),一定要讀完指定的大小位置,因?yàn)榈讓訉懥艘粋€(gè)for循環(huán)
2:如果要使用async_read_some開頭的函數(shù),一定要使用先讀寫包頭,再讀寫包體的思想
3:在使用先讀寫包頭,再讀寫包體的思想時(shí),不要忘記ec判斷(也就是beast::http::error::need_buffer),此錯(cuò)誤,不是真正的錯(cuò)誤,可以理解為beast單元庫的提示錯(cuò)誤
4:beast單元庫中的async_read_some 使用時(shí),會(huì)造成數(shù)據(jù)讀取不全,關(guān)鍵看得看場景(本人使用beast單元庫時(shí),喜歡在server端角色,使用async_read_some開頭的函數(shù),不在client端使用async_read_some開頭的函數(shù))
5:http::xx_parserhttp::buffer_body(request和response) 用這類解析器時(shí),如果想要快速的拿數(shù)據(jù),可以建議調(diào)大char buffer數(shù)組
6:beast單元庫,入門門檻比較高(本作者也在摸索階段,我主要用beast單元庫開發(fā)http和https相關(guān)代理),因此難免會(huì)遇到很多的坑,需要靜下心來分析問題
7:http::xx_parserhttp::buffer_body(request和response) 用這類解析器時(shí),注意body_limit 時(shí)對chunked 方式傳輸做限制的
8:目前beast的版本存在body_limit 對chunked方式傳輸做body_limit限制,其它傳輸沒做
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的beast单元库的总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: git中reset与revert的区别
- 下一篇: char数组拷贝wchar数组