분류 전체보기

Boost C++ Libraries/Boost.Asio

Boost.Asio 개요 - 타이머

타이머 (Timers) 긴 시간 실행되는 I/O 작업에는 완료 기한이 주어지는 경우가 많다. 이러한 기한은 절대 시간으로 표현될 수 있지만, 현재 시간에서 비례하여 계산되는 경우가 많다. 간단한 예로, 타이머에서 상대 시간을 사용하여 동기식 대기 작업을 수행하려면 다음과 같이 작성한다: io_context i; ... deadline_timer t(i); t.expires_from_now(boost::posix_time::seconds(5)); t.wait(); 더 일반적으로 프로그램은 타이머에서 비동기식 대기 작업을 수행한다: void handler(boost::system::error_code ec) { ... } ... io_context i; ... deadline_timer t(i); t.exp..

Boost C++ Libraries/Boost.Asio

Boost.Asio 개요 - 네트워킹 - BSD 소켓 API 및 Boost.Asio

BSD 소켓 API 및 Boost.Asio (The BSD Socket API and Boost.Asio) Boost.Asio 라이브러리에는 광범위한 문헌으로 널리 구현되고 지원되는 BSD 소켓 API를 기반으로 하는 저수준(low-level) 소켓 인터페이스가 포함되어 있다. 또한 JAVA와 같은 다른 언어로 된 네트워킹 API의 기반으로도 사용된다. 이 저수준(low-level) 인터페이스는 효율적이고 확장 가능한 응용 프로그램 개발을 지원하도록 설계되어 있다. 예를 들어, 프로그래머가 시스템 호출의 수를 보다 세밀하게 제어할 수 있고, 중복 데이터 복사를 방지하며, 스레드와 같은 리소스 사용을 최소화할 수도 있다. BSD 소켓 API의 불안전하고 오류 발생이 쉬운 측면은 포함하지 않는다. 예를 들어..

Boost C++ Libraries/Boost.Asio

Boost.Asio 개요 - 네트워킹 - 소켓 Iostreams

소켓 Iostreams (Socket Iostreams) Boost.Asio에는 소켓 위에 iostream을 구현한 클래스를 포함하고 있다. 이는 엔드포인트(endpoint) 확인, 프로토콜 독립성 등과 관련된 복잡성을 숨긴다. 연결을 생성하려면 다음과 같이 작성하면 된다: ip::tcp::iostream stream("www.boost.org", "http"); if (!stream) { // Can't connect. } iostream 클래스는 또한 간단한 서버를 만들기 위해 승인기(acceptor)와 함께 사용될 수 있다. 예를 들면 다음과 같다: io_context ioc; ip::tcp::endpoint endpoint(tcp::v4(), 80); ip::tcp::acceptor accepto..

Boost C++ Libraries/Boost.Asio

Boost.Asio 개요 - 네트워킹 - 기타 프로토콜 지원

기타 프로토콜 지원 (Support for Other Protocols) Protocol type requirements(프로토콜 유형 요구사항)을 구현하여 다른 소켓 프로토콜(예: Bluetooth 또는 IRCOMM 소켓)에 대한 지원을 추가할 수 있다. 그러나 대부분의 경우 이런 프로토콜들은 Boost.Asio의 일반적인 지원과 함께 사용될 수 있다. 이를 위해, Boost.Asio는 다음 네 가지 클래스를 제공한다: generic::datagram_protocol generic::raw_protocol generic::seq_packet_protocol generic::stream_protocol 이런 클래스는 프로토콜 유형 요구사항을 구현하지만, 사용자가 런타임에 주소 패밀리(예: AF_INET)..

Boost C++ Libraries/Boost.Asio

Boost.Asio 개요 - 네트워킹 - TCP, UDP 및 ICMP

TCP, UDP 및 ICMP (TCP, UDP and ICMP) Boost.Asio는 인터넷 프로토콜인 TCP, UDP 및 ICMP등 기성 프로토콜에 대한 지원을 제공한다. TCP 클라이언트 호스트 이름 확인은 리졸버(resolver)를 사용해 수행된다. 여기서 호스트와 서비스 이름이 조회되고 하나 이상의 엔드포인트(endpoint)로 변환된다: ip::tcp::resolver resolver(my_io_context); ip::tcp::resolver::query query("www.boost.org", "http"); ip::tcp::resolver::iterator iter = resolver.resolve(query); ip::tcp::resolver::iterator end; // End mar..

까마귀75
'분류 전체보기' 카테고리의 글 목록 (469 Page)