tag::echo[]
| 20 | |
| 21 | // tag::echo[] |
| 22 | cobalt::promise<void> echo(cobalt::io::stream_socket socket) |
| 23 | { |
| 24 | try // <1> |
| 25 | { |
| 26 | char data[4096]; |
| 27 | while (socket.is_open()) // <2> |
| 28 | { |
| 29 | std::size_t n = co_await socket.read_some(boost::asio::buffer(data)); // <3> |
| 30 | co_await cobalt::io::write(socket, boost::asio::buffer(data, n)); // <4> |
| 31 | } |
| 32 | } |
| 33 | catch (std::exception& e) |
| 34 | { |
| 35 | std::printf("echo: exception: %s\n", e.what()); |
| 36 | } |
| 37 | } |
| 38 | // end::echo[] |
| 39 | |
| 40 |
no test coverage detected