#include "client.hpp" #include #include #include using namespace boost::asio::ip; using namespace boost::system; Client::Client(tcp::socket &&socket) : socket(std::move(socket)) , buffer() {} void Client::handle_receive(const error_code &ec, size_t read_bytes) { if(!ec) { std::string str(buffer.begin(), buffer.end()); std::cout << "Received: " << str << std::endl; receive(); } else { on_done(); } } void Client::receive() { using namespace boost::asio::placeholders; memset(buffer.data(), 0, buffer.size()); socket.async_receive( boost::asio::buffer(buffer), boost::bind(&Client::handle_receive, this, error(), bytes_transferred()) ); } void Client::set_on_done(Client::OnDoneFT f) { on_done = f; }