blob: 3346c31bb1e08d3bdbfe18f6995390514a05510d [file] [log] [blame]
[/
/ Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com)
/
/ Distributed under the Boost Software License, Version 1.0. (See accompanying
/ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
/]
[section:iostreams Socket Iostreams]
Boost.Asio includes classes that implement iostreams on top of sockets. These hide
away the complexities associated with endpoint resolution, protocol
independence, etc. To create a connection one might simply write:
ip::tcp::iostream stream("www.boost.org", "http");
if (!stream)
{
// Can't connect.
}
The iostream class can also be used in conjunction with an acceptor to create
simple servers. For example:
io_service ios;
ip::tcp::endpoint endpoint(tcp::v4(), 80);
ip::tcp::acceptor acceptor(ios, endpoint);
for (;;)
{
ip::tcp::iostream stream;
acceptor.accept(*stream.rdbuf());
...
}
[heading See Also]
[link boost_asio.reference.ip__tcp.iostream ip::tcp::iostream],
[link boost_asio.reference.basic_socket_iostream basic_socket_iostream],
[link boost_asio.examples.iostreams iostreams examples].
[heading Notes]
These iostream templates only support `char`, not `wchar_t`, and do not perform
any code conversion.
[endsect]