找回密码
 立即注册
首页 业界区 业界 使用 C++ 20 协程降低异步网络编程复杂度 ...

使用 C++ 20 协程降低异步网络编程复杂度

王妍芳 3 天前
传统异步回调 vs C++20协程

协程是一种函数对象,可以设置锚点做暂停,然后再该锚点恢复继续运行。它是如何应用在网络异步编程方面的,请对比下面的两种代码风格:基于回调的异步网络编程

先来看一个异步编程的典型例子 (伪代码):[code]async_resolve({host, port}, [](auto endpoint){  async_connect(endpoint, [](auto error_code){    async_handle_shake([](auto error_code){        send_data_ = build_request();         async_write(send_data_, [](auto error_code){            async_read();        });    });  });}); void async_read() {    async_read(response_, [](auto error_code){        if(!finished()) {            append_response(recieve_data_);            async_read();        }else {            std::cout
您需要登录后才可以回帖 登录 | 立即注册