#include "server.h" #include #include server::server(const std::string& address, const std::string& port) { tcp::resolver resolver(_io_service); tcp::resolver::query query(address, port); _acceptor = new tcp::acceptor(_io_service, *resolver.resolve(query)); } void server::run() { accept(); _io_service.run(); } void server::accept(boost::system::error_code ec) { if(!ec) { reenter(this) for(;;) { _session = new session(_io_service); yield _acceptor->async_accept(_session->_socket, std::bind(&server::accept, this, std::placeholders::_1)); std::cout << "new connection started" << std::endl; _session->start(); } } else { std::cout << "error: " << ec.message() << std::endl; } } server::~server() { if(_socket) delete _socket; if(_acceptor) delete _acceptor; } #include