boost http server example

來源:互聯網
上載者:User

Examples

Examples


Allocation

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

  • boost_asio/example/allocation/server.cpp


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


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 posix::stream_descriptor class to perform console input and output.

  • boost_asio/example/chat/posix_chat_client.cpp


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


Fork

These POSIX-specific examples show how to use Boost.Asio in conjunction with the fork() system call. The first example illustrates the steps required to start a daemon process:

  • boost_asio/example/fork/daemon.cpp

The second example demonstrates how it is possible to fork a process from within a completion handler.

  • boost_asio/example/fork/process_per_connection.cpp


HTTP Client

Example programs implementing simple HTTP 1.0 clients. These examples show how to use the read_until and async_read_until functions.

  • boost_asio/example/http/client/sync_client.cpp
  • boost_asio/example/http/client/async_client.cpp


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/main.cpp
  • boost_asio/example/http/server/mime_types.cpp
  • boost_asio/example/http/server/mime_types.hpp
  • 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


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/main.cpp
  • boost_asio/example/http/server2/mime_types.cpp
  • boost_asio/example/http/server2/mime_types.hpp
  • 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


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/main.cpp
  • boost_asio/example/http/server3/mime_types.cpp
  • boost_asio/example/http/server3/mime_types.hpp
  • 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


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/main.cpp
  • boost_asio/example/http/server4/mime_types.cpp
  • boost_asio/example/http/server4/mime_types.hpp
  • 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/yield.hpp


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


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


Iostreams

Two examples showing how to use ip::tcp::iostream.

  • boost_asio/example/iostreams/daytime_client.cpp
  • boost_asio/example/iostreams/daytime_server.cpp
  • boost_asio/example/iostreams/http_client.cpp


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


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


Services

This example demonstrates how to integrate custom functionality (in this case, for logging) into asio's io_service, and how to use a custom service with 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


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


SSL

Example client and server programs showing the use of the ssl::stream<> template with asynchronous operations.

  • boost_asio/example/ssl/client.cpp
  • boost_asio/example/ssl/server.cpp


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


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


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


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


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


Windows

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

  • boost_asio/example/windows/transmit_file.cpp
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.