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

这周学了 c++ 20 协程的相关部分,然后把上周写的那个异步 https client 升级了一下,不得不说用同步方式写异步代码真的太爽了,相比于比那种回调回调再回调的地狱真的知道好多少倍。
另外强烈推荐昨天发现的一个视频 《Why C++20 is the Awesomest Language for Network Programming》,可以去油管上搜一下,总时长一个小时,比较长但是讲的很好,听的巨舒服,上次有这种感觉还是听那个 c10k 问题的视频。
总之再看一下程序执行的效果:
贴一下主要逻辑:
怎么说,这代码应该说是一行注释都不需要吧,巨清晰。
再贴一下之前没有使用协程的版本的主要逻辑,你可以发现一个很明显的区别在于同样的一个流程,你用异步方式去写代码就只能倒着来,而且一个套一个没法拆分,我在这一版中加了一个 dispatch_queue 就是为了打断 handle_shakehand 和 send_request,而在协程版本中这个过程就非常自然,而且你也可以自由随意拆分: