#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() { // using tr_p_t = asio ::ip::tcp; // using tr_p_t = asio::local::stream_protocol; using tr_p_t = asio::local::seq_packet_protocol; tr_p_t::endpoint ept_c(std::string("/tmp/AAA").insert(0, 1, '\0')); // tr_p_t::endpoint ept_c("/tmp/AAA"); // tr_p_t::endpoint ept_c(asio::ip::make_address_v4("0.0.0.0"), 9999); std::cout << "ADDR: " << ept_c << "\n"; asio::io_context ctx; // using srv_t = adc::impl::AdcNetServiceASIOBase>; using srv_t = adc::impl::AdcNetServiceASIOBase>; typename srv_t::acceptor_t acc(ctx, ept_c); acc.asyncAccept([](std::error_code ec, auto srv) { if (!ec) { receive(std::move(srv)); } else { std::cout << "ACCEPT ERR: " << ec.message() << "\n"; } }); ctx.run(); std::cout << "Exit!\n"; return 0; }