#include "tcp_server_base.hpp" #include "logger.hpp" TcpServerBase::TcpServerBase(IoContext &io, unsigned short port) : acceptor_(io, TcpEndpoint(boost::asio::ip::tcp::v4(), port)) { } void TcpServerBase::start() { auto doAccept = [this]() { acceptor_.async_accept([this](ErrorCode ec, TcpSocket socket) { if (!ec) { Logger::info("New client connected"); createSession(std::move(socket)); } else { Logger::error("Accept error: " + ec.message()); } start(); // continue accepting }); }; doAccept(); }