#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) { buffer.commit(read_bytes); std::istream is(&buffer); if(!ec) { std::vector data(std::istream_iterator(is), {}); std::cout << "Received: " << std::string(data.begin(), data.end()) << std::endl; receive(); } else { on_done(); } } void Client::receive() { using namespace boost::asio::placeholders; socket.async_receive( buffer.prepare(512), boost::bind(&Client::handle_receive, this, error(), bytes_transferred()) ); } void Client::set_on_done(Client::OnDoneFT f) { on_done = f; }