diff --git a/examples/echo_server.cpp b/examples/echo_server.cpp index 0476f3be..0a4c1582 100644 --- a/examples/echo_server.cpp +++ b/examples/echo_server.cpp @@ -53,7 +53,8 @@ private: resp.clear(); msg.erase(0, n); } - } catch (std::exception&) { + } catch (std::exception const& e) { + std::cout << "Error: " << e.what() << std::endl; socket_.close(); } } @@ -68,6 +69,7 @@ listener( { for (;;) { auto socket = co_await acc->async_accept(net::use_awaitable); + std::cout << "New" << std::endl; auto session = std::make_shared(std::move(socket)); session->start(db); } diff --git a/tools/echo_server_client.cpp b/tools/echo_server_client.cpp index 7f4eb872..b2f69621 100644 --- a/tools/echo_server_client.cpp +++ b/tools/echo_server_client.cpp @@ -13,25 +13,27 @@ using net::ip::tcp; using tcp_socket = net::use_awaitable_t<>::as_default_on_t; using timer_type = net::use_awaitable_t<>::as_default_on_t; -net::awaitable example(std::string msg, int n) +net::awaitable +example(boost::asio::ip::tcp::endpoint ep, std::string msg, int n) { try { auto ex = co_await net::this_coro::executor; - tcp::resolver resv{ex}; - auto const res = resv.resolve("127.0.0.1", "55555"); tcp_socket socket{ex}; - co_await socket.async_connect(*std::begin(res)); + co_await socket.async_connect(ep); std::string buffer; auto dbuffer = net::dynamic_buffer(buffer); for (int i = 0; i < n; ++i) { co_await net::async_write(socket, net::buffer(msg)); - co_await net::async_read_until(socket, dbuffer, "\n"); - //std::printf("Nada %s", buffer.data()); + auto n = co_await net::async_read_until(socket, dbuffer, "\n"); + //std::printf("> %s", buffer.data()); + dbuffer.consume(n); } - } catch (...) { - std::cerr << "Error" << std::endl; + + std::printf("Ok: %s", msg.data()); + } catch (std::exception const& e) { + std::cerr << "Error: " << e.what() << std::endl; } } @@ -40,9 +42,13 @@ int main() try { net::io_context ioc; + tcp::resolver resv{ioc}; + auto const res = resv.resolve("127.0.0.1", "55555"); + auto ep = *std::begin(res); + int n = 100; - for (int i = 0; i < 500; ++i) - net::co_spawn(ioc, example("Some message\n", n), net::detached); + for (int i = 0; i < 2; ++i) + net::co_spawn(ioc, example(ep, "Some message\n", n), net::detached); ioc.run(); } catch (std::exception const& e) {