mirror of
https://github.com/boostorg/asio.git
synced 2026-01-19 04:02:09 +00:00
223 lines
7.3 KiB
Plaintext
223 lines
7.3 KiB
Plaintext
[/
|
|
/ Copyright (c) 2003-2008 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]
|
|
|
|
|
|
[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 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/accept_timeout.cpp]
|
|
* [@boost_asio/example/timeouts/connect_timeout.cpp]
|
|
* [@boost_asio/example/timeouts/datagram_receive_timeout.cpp]
|
|
* [@boost_asio/example/timeouts/stream_receive_timeout.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]
|
|
|
|
|
|
[endsect]
|