传统异步回调 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 |