Timer.1 소스 (Source listing for Timer.1) // // timer.cpp // ~~~~~~~~~ // // Copyright (c) 2003-2020 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) // #include #include int main() { boost::asio::io_context io; boost::asio::steady_timer t(i..
Timer.2 타이머를 비동기식으로 사용 (Using a timer asynchronously) 이 튜토리얼 프로그램은 타이머에서 비동기 대기를 수행하도록 튜토리얼 Timer.1에서 사용한 프로그램을 수정하여 asio의 비동기 콜백 기능을 사용하는 방법을 보여준다. #include #include asio의 비동기 기능을 사용한다는 것은 비동기 작업 완료 후 호출되는 콜백 함수를 갖는다는 것을 의미한다. 이 프로그램에서는 비동기 대기가 끝나면 호출되는 print라는 함수를 정의한다. void print(const boost::system::error_code& /*e*/) { std::cout
Timer.1 - 타이머를 동기식으로 사용 (Using a timer synchronously) 이 튜토리얼 프로그램은 asio를 소개하기 위해서 타이머에서 블록 대기를 수행하는 방법을 보여준다. 필요한 헤더 파일을 포함하는 것으로 시작한다. 모든 asio 클래스는 단순히 "asio.hpp" 헤더 파일을 포함하여 사용할 수 있다. #include #include asio를 사용하는 모든 프로그램에는 io_context 또는 thread_pool 개체와 같은 I/O 실행 컨텍스트가 하나 이상 있어야 한다. I/O 실행 컨텍스트는 I/O 기능에 대한 접근을 제공한다. main 함수에서 io_context 유형의 개체를 먼저 선언한다. int main() { boost::asio::io_context io; ..
튜토리얼 (Tutorial) 기본 기술 (Basic Skills) 첫 번째 섹션의 튜토리얼 프로그램은 asio 툴킷을 사용하는데 필요한 기본 개념을 소개한다. 복잡한 네트워크 프로그래밍 세계로 빠져들기 전에, 이 튜토리얼 프로그램은 간단한 비동기 타이머를 사용하여 기본 기술을 설명한다. Timer.1 - 타이머를 동기식으로 사용 Timer.2 - 타이머를 비동기식으로 사용 Timer.3 - 핸들러에 대한 바인딩 인수 Timer.4 - 핸들러로 멤버 함수를 사용 Timer.5 - 멀티스레드 프로그램에서 핸들러 동기화 소켓 소개 (Introduction to Sockets) 두 번째 섹션의 튜토리얼 프로그램은 asio를 사용하여 간단한 클라이언트와 서버 프로그램을 개발하는 방법을 보여준다. 이 튜토리얼 프로..
Boost.Asio 사용 (Using Boost.Asio) 지원되는 플랫폼 (Supported Platforms) 다음 플랫폼과 컴파일러 조합은 정기적으로 테스트된다: g++ 4.1 이상 사용하는 Linux clang 3.2 이상 사용하는 Linux g++ 4.1 이상 사용하는 FreeBSD Xcode 8 이상 사용하는 macOS Visual C++9.0 이상 사용하는 Win32 g++ 4.1 이상(MinGW) 사용하는 Win32 Visual C++ 9.0 이상 사용하는 Win64 다음 플랫폼도 작동할 수 있다: AIX Android HP-UX iOS NetBSD OpenBSD QNX Neutrino Solaris Tru64 Cygwin을 사용하는 Win32 (__USE_W32_SOCKET가 정의되어야 ..