boost asio 獲取 B 站徽章 (C++20)

這周學(xué)了 c++ 20 協(xié)程的相關(guān)部分,然后把上周寫的那個異步 https client 升級了一下,不得不說用同步方式寫異步代碼真的太爽了,相比于比那種回調(diào)回調(diào)再回調(diào)的地獄真的知道好多少倍。
另外強(qiáng)烈推薦昨天發(fā)現(xiàn)的一個視頻 《Why C++20 is the Awesomest Language for Network Programming》,可以去油管上搜一下,總時長一個小時,比較長但是講的很好,聽的巨舒服,上次有這種感覺還是聽那個?c10k?問題的視頻。
總之再看一下程序執(zhí)行的效果:
貼一下主要邏輯:
怎么說,這代碼應(yīng)該說是一行注釋都不需要吧,巨清晰。
再貼一下之前沒有使用協(xié)程的版本的主要邏輯,你可以發(fā)現(xiàn)一個很明顯的區(qū)別在于同樣的一個流程,你用異步方式去寫代碼就只能倒著來,而且一個套一個沒法拆分,我在這一版中加了一個 dispatch_queue 就是為了打斷 handle_shakehand?和 send_request,而在協(xié)程版本中這個過程就非常自然,而且你也可以自由隨意拆分: