#include #include #include "../net/adc_netproto.h" #include "../net/asio/adc_netservice_asio.h" template void receive(T srv) { srv.asyncReceive( [&srv](std::error_code ec, std::string msg) { if (!ec) { std::cout << "Received: [" << msg << "]\n"; receive(std::move(srv)); } else { std::cout << "Received: " << ec.message() << "\n"; } }, std::chrono::minutes(1)); } int main() { asio::ip::tcp::endpoint ept_s(asio::ip::tcp::v4(), 9999); asio::ip::tcp::endpoint ept_c(asio::ip::make_address_v4("0.0.0.0"), 9999); // asio::ip::tcp::endpoint ept_c(asio::ip::address_v4::any(), 9999); // std::cout << "ADDR: " << ept_s << "\n"; std::cout << "ADDR: " << ept_c << "\n"; asio::io_context ctx; using srv_t = adc::impl::AdcNetServiceASIOBase>; typename srv_t::acceptor_t acc(ctx, ept_c); acc.asyncAccept([](std::error_code ec, srv_t srv) { if (!ec) { // receive(std::move(srv)); srv.asyncReceive( [](std::error_code ec, std::string msg) { if (!ec) { std::cout << "Received: [" << msg << "]\n"; // receive(std::move(srv)); } else { std::cout << "Received: " << ec.message() << "\n"; } }, std::chrono::minutes(1)); } else { std::cout << "ACCEPT ERR: " << ec.message() << "\n"; } }); ctx.run(); std::cout << "Exit!\n"; return 0; }