From 7f486d6c8fad66f77daa8c3321aa078e01f4c718 Mon Sep 17 00:00:00 2001 From: "Claudius \"keldu\" Holeksa" Date: Fri, 15 Mar 2024 15:00:48 +0100 Subject: io: Echo client example with async streams --- modules/io/examples/echo_client.cpp | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/modules/io/examples/echo_client.cpp b/modules/io/examples/echo_client.cpp index ad03779..fa9781d 100644 --- a/modules/io/examples/echo_client.cpp +++ b/modules/io/examples/echo_client.cpp @@ -1,5 +1,6 @@ #include "../c++/io.hpp" +#include #include #include "echo.hpp" @@ -27,6 +28,32 @@ int main(){ keep_running = false; }).detach(); + saw::own net_addr = nullptr; + saw::own async_rmt = nullptr; + + std::array read_data; + uint64_t read_bytes = 0; + auto& network = aio.io->get_network(); + network.resolve_address("127.0.0.1", 4322).then([&](auto addr){ + net_addr = std::move(addr); + network.connect(*net_addr).then([&](auto rmt_srv){ + async_rmt = saw::heap(std::move(rmt_srv)); + async_rmt->write("foo", 3); + + async_rmt->read(&read_data[0], 3, read_data.size()-1); + + async_rmt->read_done().then([&](size_t b){ + for(uint64_t i = 0; i < b; ++i){ + std::cout<(read_data[i]); + } + std::cout<