5 // Copyright (c) 2003-2016 Christopher M. Kohlhoff (chris at kohlhoff dot com)
7 // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
12 #include <boost/array.hpp>
13 #include <boost/asio.hpp>
15 using boost::asio::ip::tcp
;
17 int main(int argc
, char* argv
[])
23 std::cerr
<< "Usage: client <host>" << std::endl
;
27 boost::asio::io_service io_service
;
29 tcp::resolver
resolver(io_service
);
30 tcp::resolver::query
query(argv
[1], "daytime");
31 tcp::resolver::iterator endpoint_iterator
= resolver
.resolve(query
);
33 tcp::socket
socket(io_service
);
34 boost::asio::connect(socket
, endpoint_iterator
);
38 boost::array
<char, 128> buf
;
39 boost::system::error_code error
;
41 size_t len
= socket
.read_some(boost::asio::buffer(buf
), error
);
43 if (error
== boost::asio::error::eof
)
44 break; // Connection closed cleanly by peer.
46 throw boost::system::system_error(error
); // Some other error.
48 std::cout
.write(buf
.data(), len
);
51 catch (std::exception
& e
)
53 std::cerr
<< e
.what() << std::endl
;