aboutsummaryrefslogtreecommitdiff
path: root/network-handler/client.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'network-handler/client.cpp')
-rw-r--r--network-handler/client.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/network-handler/client.cpp b/network-handler/client.cpp
index 816753c..c2825d7 100644
--- a/network-handler/client.cpp
+++ b/network-handler/client.cpp
@@ -15,9 +15,12 @@ Client::Client(tcp::socket &&socket)
void Client::handle_receive(const error_code &ec, size_t read_bytes)
{
+ buffer.commit(read_bytes);
+ std::istream is(&buffer);
+
if(!ec) {
- std::string str(buffer.begin(), buffer.end());
- std::cout << "Received: " << str << std::endl;
+ std::vector<uint8_t> data(std::istream_iterator<uint8_t>(is), {});
+ std::cout << "Received: " << std::string(data.begin(), data.end()) << std::endl;
receive();
} else {
on_done();
@@ -27,9 +30,8 @@ void Client::handle_receive(const error_code &ec, size_t read_bytes)
void Client::receive() {
using namespace boost::asio::placeholders;
- memset(buffer.data(), 0, buffer.size());
socket.async_receive(
- boost::asio::buffer(buffer),
+ buffer.prepare(512),
boost::bind(&Client::handle_receive, this, error(), bytes_transferred())
);
}