C++11 예제 (Examples)
메모리 할당 (Allocation)
이 예제는 비동기 작업과 관련된 메모리 할당에 대해 사용자 정의하는 방법을 보여준다.
- 원본: boost_asio/example/cpp11/allocation/server.cpp
- 설명: server.cpp
버퍼 (Buffers)
이 예제는 소켓 읽기/쓰기 작업과 함께 사용할 수 있는 참조 카운터 버퍼를 생성하는 방법을 보여준다.
- 원본: boost_asio/example/cpp11/buffers/reference_counted.cpp
- 설명: reference_counted.cpp
채팅 (Chat)
이 예제는 서버와 클라이언트를 구현한다. 프로그램은 고정 길이 메시지 헤더와 가변 길이 메시지 본문을 가진 사용자 정의 프로토콜을 사용한다.
- 원본: boost_asio/example/cpp11/chat/chat_message.hpp
- 설명: chat_message.hpp
- 원본: boost_asio/example/cpp11/chat/chat_client.cpp
- 설명: chat_client.cpp
- 원본: boost_asio/example/cpp11/chat/chat_server.cpp
- 설명: chat_server.cpp
에코 (Echo)
간단한 클라이언트와 서버 모음으로, 동기 및 비동기 작업을 어떻게 사용하는지 보여준다.
- 원본: boost_asio/example/cpp11/echo/async_tcp_echo_server.cpp
- 설명: async_tcp_echo_server.cpp
- 원본: boost_asio/example/cpp11/echo/async_udp_echo_server.cpp
- 설명: async_udp_echo_server.cpp
- 원본: boost_asio/example/cpp11/echo/blocking_tcp_echo_client.cpp
- 설명: blocking_tcp_echo_client.cpp
- 원본: boost_asio/example/cpp11/echo/blocking_tcp_echo_server.cpp
- 설명: blocking_tcp_echo_server.cpp
- 원본: boost_asio/example/cpp11/echo/blocking_udp_echo_client.cpp
- 설명: blocking_udp_echo_client.cpp
- 원본: boost_asio/example/cpp11/echo/blocking_udp_echo_server.cpp
- 설명: blocking_udp_echo_server.cpp
포크 (Fork)
이런 POSIX-전용 예제는 fork() 시스템 호출과 함께 Boost.Asio를 사용하는 방법을 보여준다. 첫 번째 예제는 데몬 프로세스를 시작하는 데 필요한 단계를 설명한다:
- 원본: boost_asio/example/cpp11/fork/daemon.cpp
- 설명: daemon.cpp
두 번째 예제는 완료 핸들러 내에서 프로세스를 포크(fork)하는 방법을 보여준다.
- 원본: boost_asio/example/cpp11/fork/process_per_connection.cpp
- 설명: process_per_connection.cpp
퓨쳐 (Futures)
이 예제는 Boost.Asio의 비동기 작업과 함께 std::future를 사용하는 방법을 보여준다.
- 원본: boost_asio/example/cpp11/futures/daytime_client.cpp
- 설명: daytime_client.cpp
핸들러 추적 (Handler Tracking)
이 예제의 헤더 파일은 사용자 정의 핸들러 추적을 구현하는 방법을 보여준다.
- 원본: boost_asio/example/cpp11/handler_tracking/custom_tracking.hpp
- 설명: custom_tracking.hpp
이 예제 프로그램은 핸들러 추적 출력에 소스 위치 정보를 포함하는 방법을 보여준다.
- 원본: boost_asio/example/cpp11/handler_tracking/async_tcp_echo_server.cpp
- 설명: async_tcp_echo_server.cpp
HTTP 서버 (HTTP Server)
이 예제는 HTTP 1.0의 간단한 단일 스레드 서버 구현에서 asio를 사용하는 방법을 보여준다. 처리되지 않은 모든 비동기 작업을 취소하여 깔끔한 종료(a clean shutdown)를 수행하는 방법을 보여준다.
- 원본: boost_asio/example/cpp11/http/server/connection.cpp
- 설명: connection.cpp
- 원본: boost_asio/example/cpp11/http/server/connection.hpp
- 설명: connection.hpp
- 원본: boost_asio/example/cpp11/http/server/connection_manager.cpp
- 설명: connection_manager.cpp
- 원본: boost_asio/example/cpp11/http/server/connection_manager.hpp
- 설명: connection_manager.hpp
- 원본: boost_asio/example/cpp11/http/server/header.hpp
- 설명: header.hpp
- 원본: boost_asio/example/cpp11/http/server/main.cpp
- 설명: main.cpp
- 원본: boost_asio/example/cpp11/http/server/mime_types.cpp
- 설명: mime_types.cpp
- 원본: boost_asio/example/cpp11/http/server/mime_types.hpp
- 설명: mime_types.hpp
- 원본: boost_asio/example/cpp11/http/server/reply.cpp
- 설명: reply.cpp
- 원본: boost_asio/example/cpp11/http/server/reply.hpp
- 설명: reply.hpp
- 원본: boost_asio/example/cpp11/http/server/request.hpp
- 설명: request.hpp
- 원본: boost_asio/example/cpp11/http/server/request_handler.cpp
- 설명: request_handler.cpp
- 원본: boost_asio/example/cpp11/http/server/request_handler.hpp
- 설명: request_handler.hpp
- 원본: boost_asio/example/cpp11/http/server/request_parser.cpp
- 설명: request_parser.cpp
- 원본: boost_asio/example/cpp11/http/server/request_parser.hpp
- 설명: request_parser.hpp
- 원본: boost_asio/example/cpp11/http/server/server.cpp
- 설명: server.cpp
- 원본: boost_asio/example/cpp11/http/server/server.hpp
- 설명: server.hpp
멀티캐스트 (Multicast)
멀티캐스트를 사용하여 가입자의 그룹에 패킷을 전송하는 예제를 보여준다.
- 원본: boost_asio/example/cpp11/multicast/receive.cpp
- 설명: receive.cpp
- 원본: boost_asio/example/cpp11/multicast/sender.cpp
- 설명: sender.cpp
넌블럭킹 (Nonblocking)
I/O 작업 자체를 수행하기 원하는 타사(third-party) 라이브러리를 통합하기 위한 리액터(reactor) 스타일 작업을 보여주는 예제이다.
- 원본: boost_asio/example/cpp11/nonblocking/third_party_lib.cpp
- 설명: third_party_lib.cpp
운영 (Operations)
예제는 재사용 가능한 라이브러리 함수로 구성된 비동기 작업을 구현하는 방법을 보여준다.
- 원본: boost_asio/example/cpp11/operations/composed_1.cpp
- 설명: composed_1.cpp
- 원본: boost_asio/example/cpp11/operations/composed_2.cpp
- 설명: composed_2.cpp
- 원본: boost_asio/example/cpp11/operations/composed_3.cpp
- 설명: composed_3.cpp
- 원본: boost_asio/example/cpp11/operations/composed_4.cpp
- 설명: composed_4.cpp
- 원본: boost_asio/example/cpp11/operations/composed_5.cpp
- 설명: composed_5.cpp
- 원본: boost_asio/example/cpp11/operations/composed_6.cpp
- 설명: composed_6.cpp
- 원본: boost_asio/example/cpp11/operations/composed_7.cpp
- 설명: composed_7.cpp
- 원본: boost_asio/example/cpp11/operations/composed_8.cpp
- 설명: composed_8.cpp
SOCKS 4
프록시를 통한 통신을 SOCKS 4 프로토콜로 구현하는 클라이언트 프로그램 예제이다.
- 원본: boost_asio/example/cpp11/socks4/sync_client.cpp
- 설명: sync_client.cpp
- 원본: boost_asio/example/cpp11/socks4/socks4.hpp
- 설명: socks4.hpp
Spawn
스택형 코-루틴을 사용하여 비동기 작업의 체인을 구현하는 위해 Boost.Coroutine 라이브러리를 감싸는 래퍼인 boost.::asio::spawn() 함수를 사용하는 예제이다.
- 원본: boost_asio/example/cpp11/spawn/echo_server.cpp
- 설명: echo_server.cpp
SSL
클라이언트와 서버 프로그램 예제는 비동기 연산에서 ssl::stream<> 템플릿의 사용을 보여준다.
- 원본: boost_asio/example/cpp11/ssl/client.cpp
- 설명: client.cpp
- 원본: boost_asio/example/cpp11/ssl/server.cpp
- 설명: server.cpp
타임아웃 (Timeouts)
일정 시간 후 오랜 시간 실행하는 비동기 작업을 취소하는 방법을 보여주는 예제의 모음이다.
- 원본: boost_asio/example/cpp11/timeouts/async_tcp_client.cpp
- 설명: async_tcp_client.cpp
- 원본: boost_asio/example/cpp11/timeouts/blocking_tcp_client.cpp
- 설명: blocking_tcp_client.cpp
- 원본: boost_asio/example/cpp11/timeouts/blocking_token_tcp_client.cpp
- 설명: blocking_token_tcp_client.cpp
- 원본: boost_asio/example/cpp11/timeouts/blocking_udp_client.cpp
- 설명: blocking_udp_client.cpp
- 원본: boost_asio/example/cpp11/timeouts/server.cpp
- 설명: server.cpp
타이머 (Timers)
다른 클럭 유형을 사용하여 basic_waitable_timer를 사용자 정의하는 방법을 보여주는 예제이다.
- 원본: boost_asio/example/cpp11/timers/time_t_timer.cpp
- 설명: time_t_timer.cpp
유닉스 도메인 소켓 (UNIX Domain Sockets)
유닉스 도메인 (로컬) 소켓의 사용법을 보여주는 예제이다.
- 원본: boost_asio/example/cpp11/local/connect_pair.cpp
- 설명: connect_pair.cpp
- 원본: boost_asio/example/cpp11/local/iostream_client.cpp
- 설명: iostream_client.cpp
- 원본: boost_asio/example/cpp11/local/stream_server.cpp
- 설명: stream_server.cpp
- 원본: boost_asio/example/cpp11/local/stream_client.cpp
- 설명: stream_client.cpp
'Boost C++ Libraries > Boost.Asio' 카테고리의 다른 글
Boost.Asio 예제 - C++17 예제 (0) | 2020.12.19 |
---|---|
Boost.Asio 예제 - C++14 예제 (0) | 2020.12.19 |
Boost.Asio 예제 - C++03 예제 (0) | 2020.12.17 |
Boost.Asio 예제 (0) | 2020.12.17 |
Boost.Asio 튜토리얼 - Daytime.7 소스 (0) | 2020.12.17 |