[/
 / 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:examples Examples]


[heading Allocation]

This example shows how to customise the allocation of memory associated with
asynchronous operations.

* [@boost_asio/example/allocation/server.cpp]


[heading Buffers]

This example demonstrates how to create reference counted buffers that can be
used with socket read and write operations.

* [@boost_asio/example/buffers/reference_counted.cpp]


[heading Chat]

This example implements a chat server and client. The programs use a custom
protocol with a fixed length message header and variable length message body.

* [@boost_asio/example/chat/chat_message.hpp]
* [@boost_asio/example/chat/chat_client.cpp]
* [@boost_asio/example/chat/chat_server.cpp]

The following POSIX-specific chat client demonstrates how to use the
[link boost_asio.reference.posix__stream_descriptor posix::stream_descriptor]
class to perform console input and output.

* [@boost_asio/example/chat/posix_chat_client.cpp]


[heading Echo]

A collection of simple clients and servers, showing the use of both synchronous
and asynchronous operations.

* [@boost_asio/example/echo/async_tcp_echo_server.cpp]
* [@boost_asio/example/echo/async_udp_echo_server.cpp]
* [@boost_asio/example/echo/blocking_tcp_echo_client.cpp]
* [@boost_asio/example/echo/blocking_tcp_echo_server.cpp]
* [@boost_asio/example/echo/blocking_udp_echo_client.cpp]
* [@boost_asio/example/echo/blocking_udp_echo_server.cpp]


[heading HTTP Client]

Example programs implementing simple HTTP 1.0 clients. These examples show how
to use the [link boost_asio.reference.read_until read_until] and [link
boost_asio.reference.async_read_until async_read_until] functions.

* [@boost_asio/example/http/client/sync_client.cpp]
* [@boost_asio/example/http/client/async_client.cpp]


[heading HTTP Server]

This example illustrates the use of asio in a simple single-threaded server
implementation of HTTP 1.0. It demonstrates how to perform a clean shutdown by
cancelling all outstanding asynchronous operations.

* [@boost_asio/example/http/server/connection.cpp]
* [@boost_asio/example/http/server/connection.hpp]
* [@boost_asio/example/http/server/connection_manager.cpp]
* [@boost_asio/example/http/server/connection_manager.hpp]
* [@boost_asio/example/http/server/header.hpp]
* [@boost_asio/example/http/server/mime_types.cpp]
* [@boost_asio/example/http/server/mime_types.hpp]
* [@boost_asio/example/http/server/posix_main.cpp]
* [@boost_asio/example/http/server/reply.cpp]
* [@boost_asio/example/http/server/reply.hpp]
* [@boost_asio/example/http/server/request.hpp]
* [@boost_asio/example/http/server/request_handler.cpp]
* [@boost_asio/example/http/server/request_handler.hpp]
* [@boost_asio/example/http/server/request_parser.cpp]
* [@boost_asio/example/http/server/request_parser.hpp]
* [@boost_asio/example/http/server/server.cpp]
* [@boost_asio/example/http/server/server.hpp]
* [@boost_asio/example/http/server/win_main.cpp]


[heading HTTP Server 2]

An HTTP server using an io_service-per-CPU design.

* [@boost_asio/example/http/server2/connection.cpp]
* [@boost_asio/example/http/server2/connection.hpp]
* [@boost_asio/example/http/server2/header.hpp]
* [@boost_asio/example/http/server2/io_service_pool.cpp]
* [@boost_asio/example/http/server2/io_service_pool.hpp]
* [@boost_asio/example/http/server2/mime_types.cpp]
* [@boost_asio/example/http/server2/mime_types.hpp]
* [@boost_asio/example/http/server2/posix_main.cpp]
* [@boost_asio/example/http/server2/reply.cpp]
* [@boost_asio/example/http/server2/reply.hpp]
* [@boost_asio/example/http/server2/request.hpp]
* [@boost_asio/example/http/server2/request_handler.cpp]
* [@boost_asio/example/http/server2/request_handler.hpp]
* [@boost_asio/example/http/server2/request_parser.cpp]
* [@boost_asio/example/http/server2/request_parser.hpp]
* [@boost_asio/example/http/server2/server.cpp]
* [@boost_asio/example/http/server2/server.hpp]
* [@boost_asio/example/http/server2/win_main.cpp]


[heading HTTP Server 3]

An HTTP server using a single io_service and a thread pool calling `io_service::run()`.

* [@boost_asio/example/http/server3/connection.cpp]
* [@boost_asio/example/http/server3/connection.hpp]
* [@boost_asio/example/http/server3/header.hpp]
* [@boost_asio/example/http/server3/mime_types.cpp]
* [@boost_asio/example/http/server3/mime_types.hpp]
* [@boost_asio/example/http/server3/posix_main.cpp]
* [@boost_asio/example/http/server3/reply.cpp]
* [@boost_asio/example/http/server3/reply.hpp]
* [@boost_asio/example/http/server3/request.hpp]
* [@boost_asio/example/http/server3/request_handler.cpp]
* [@boost_asio/example/http/server3/request_handler.hpp]
* [@boost_asio/example/http/server3/request_parser.cpp]
* [@boost_asio/example/http/server3/request_parser.hpp]
* [@boost_asio/example/http/server3/server.cpp]
* [@boost_asio/example/http/server3/server.hpp]
* [@boost_asio/example/http/server3/win_main.cpp]


[heading HTTP Server 4]

A single-threaded HTTP server implemented using stackless coroutines.

* [@boost_asio/example/http/server4/coroutine.hpp]
* [@boost_asio/example/http/server4/file_handler.cpp]
* [@boost_asio/example/http/server4/file_handler.hpp]
* [@boost_asio/example/http/server4/header.hpp]
* [@boost_asio/example/http/server4/mime_types.cpp]
* [@boost_asio/example/http/server4/mime_types.hpp]
* [@boost_asio/example/http/server4/posix_main.cpp]
* [@boost_asio/example/http/server4/reply.cpp]
* [@boost_asio/example/http/server4/reply.hpp]
* [@boost_asio/example/http/server4/request.hpp]
* [@boost_asio/example/http/server4/request_parser.cpp]
* [@boost_asio/example/http/server4/request_parser.hpp]
* [@boost_asio/example/http/server4/server.cpp]
* [@boost_asio/example/http/server4/server.hpp]
* [@boost_asio/example/http/server4/unyield.hpp]
* [@boost_asio/example/http/server4/win_main.cpp]
* [@boost_asio/example/http/server4/yield.hpp]


[heading ICMP]

This example shows how to use raw sockets with ICMP to ping a remote host.

* [@boost_asio/example/icmp/ping.cpp]
* [@boost_asio/example/icmp/ipv4_header.hpp]
* [@boost_asio/example/icmp/icmp_header.hpp]


[heading Invocation]

This example shows how to customise handler invocation. Completion handlers are
added to a priority queue rather than executed immediately.

* [@boost_asio/example/invocation/prioritised_handlers.cpp]


[heading Iostreams]

Two examples showing how to use [link boost_asio.reference.ip__tcp.iostream
ip::tcp::iostream].

* [@boost_asio/example/iostreams/daytime_client.cpp]
* [@boost_asio/example/iostreams/daytime_server.cpp]


[heading Multicast]

An example showing the use of multicast to transmit packets to a group of
subscribers.

* [@boost_asio/example/multicast/receiver.cpp]
* [@boost_asio/example/multicast/sender.cpp]


[heading Serialization]

This example shows how Boost.Serialization can be used with asio to encode and
decode structures for transmission over a socket.

* [@boost_asio/example/serialization/client.cpp]
* [@boost_asio/example/serialization/connection.hpp]
* [@boost_asio/example/serialization/server.cpp]
* [@boost_asio/example/serialization/stock.hpp]


[heading Services]

This example demonstrates how to integrate custom functionality (in this case,
for logging) into asio's [link boost_asio.reference.io_service io_service], and
how to use a custom service with [link
boost_asio.reference.basic_stream_socket basic_stream_socket<>].

* [@boost_asio/example/services/basic_logger.hpp]
* [@boost_asio/example/services/daytime_client.cpp]
* [@boost_asio/example/services/logger.hpp]
* [@boost_asio/example/services/logger_service.cpp]
* [@boost_asio/example/services/logger_service.hpp]
* [@boost_asio/example/services/stream_socket_service.hpp]


[heading SOCKS 4]

Example client program implementing the SOCKS 4 protocol for communication via
a proxy.

* [@boost_asio/example/socks4/sync_client.cpp]
* [@boost_asio/example/socks4/socks4.hpp]


[heading SSL]

Example client and server programs showing the use of the [link
boost_asio.reference.ssl__stream ssl::stream<>] template with asynchronous
operations.

* [@boost_asio/example/ssl/client.cpp]
* [@boost_asio/example/ssl/server.cpp]


[heading Timeouts]

A collection of examples showing how to cancel long running asynchronous
operations after a period of time.

* [@boost_asio/example/timeouts/async_tcp_client.cpp]
* [@boost_asio/example/timeouts/blocking_tcp_client.cpp]
* [@boost_asio/example/timeouts/blocking_udp_client.cpp]
* [@boost_asio/example/timeouts/server.cpp]


[heading Timers]

Examples showing how to customise deadline_timer using different time types.

* [@boost_asio/example/timers/tick_count_timer.cpp]
* [@boost_asio/example/timers/time_t_timer.cpp]


[heading Porthopper]

Example illustrating mixed synchronous and asynchronous operations, and how to
use Boost.Lambda with Boost.Asio.

* [@boost_asio/example/porthopper/protocol.hpp]
* [@boost_asio/example/porthopper/client.cpp]
* [@boost_asio/example/porthopper/server.cpp]


[heading Nonblocking]

Example demonstrating reactor-style operations for integrating a third-party
library that wants to perform the I/O operations itself.

* [@boost_asio/example/nonblocking/third_party_lib.cpp]


[heading UNIX Domain Sockets]

Examples showing how to use UNIX domain (local) sockets.

* [@boost_asio/example/local/connect_pair.cpp]
* [@boost_asio/example/local/stream_server.cpp]
* [@boost_asio/example/local/stream_client.cpp]


[heading Windows]

An example showing how to use the Windows-specific function `TransmitFile`
with Boost.Asio.

* [@boost_asio/example/windows/transmit_file.cpp]


[endsect]
