Boost.Asio C++ 네트워크 프로그래밍 쿡북 [손쉬운 25가지 예제를 통해 알아보는 Boost.Asio 라이브러리로 강건하면서도 매우 효율적이고 여러 플랫폼에서 쓸 수 있는 분산 애플리케이션 만들기]
- 원서명Boost.Asio C++ Network Programming Cookbook (ISBN 9781783986545)
- 지은이드미트로 라드척(Dmytro Radchuk)
- 옮긴이한정애
- ISBN : 9788960779921
- 30,000원
- 2017년 03월 30일 펴냄
- 페이퍼백 | 324쪽 | 188*235mm
- 시리즈 : acorn+PACKT
책 소개
요약
C++ 11과 14의 세계가 펼쳐졌는데도 아직도 소켓 프로그래밍을 할 때는 C 스타일로 해야 한다는 게 답답하지 않나요? 데이터형도 제대로 갖춰져 있지 않아 찾아내기 어려운 버그들이 도사리고 있기도 하죠. 이런 생활이 지긋지긋하다면 이 책에서 소개하는 Boost.Asio 네트워크 라이브러리를 사용해보세요. 예전과 같은 정도의 효율성을 유지하면서도 관리하고 쉽고 이해하기 쉬운 네트워크 프로그램을 만들 수 있습니다. Boost.Asio를 이해하기 위한 간단한 예제에서부터 보안 네트워킹을 위한 SSL/TLS 적용 예제까지 두루 갖추고 있어 여러분이 오늘 해야 하는 일에 바로 적용할 수 있을 것입니다.
이 책에서 다루는 내용
■ C++ 네트워크 라이브러리 Boost.Asio 소개
■ TCP와 UDP 프로토콜
■ 확장성 높고 매우 효율적인 클라이언트와 서버 프로그램 개발
■ 분산 응용 프로그램을 개발하는 데 필요한 배경 이론 학습
■ 분산 응용 프로그램에 대한 SSL/TLS 지원 추가와 보안 수준 향상
■ HTTP 클라이언트와 서버의 손쉬운 구현
■ iostream, 분산/수집 버퍼 및 타이머 사용
이 책의 대상 독자
이 책은 Boost.Asio 라이브러리를 사용해 C++ 네트워크 프로그래밍 기술을 향상시키거나 분산 응용 프로그램을 개발하기 위한 기반 이론을 이해하는 데 도움을 준다. 이 책에서는 여러분이 C++ 11에 대해 기본적인 지식을 갖추고 있다고 가정한다. 이 책에 수록된 내용을 제대로 습득하고, 고급 주제들을 이해하고 싶다면, 어느 정도 다중 스레드에 대한 경험이 있어야 한다
이 책의 구성
1장, ‘기초 지식’에서는 Boost.Asio 라이브러리에서 제공하는 기본 클래스에 대해 알아본다. 그리고 DNS 이름을 해석하고, 소프트웨어를 연결하며, 연결을 받아들이는 등과 같은 기본 연산을 실행하는 방법을 알아본다.
2장, ‘I/O 연산’에서는 개별적인 네트워크 I/O 연산을 동기적으로 또는 비동기적으로 실행하는 방법을 알아본다.
3장, ‘클라이언트 응용 프로그램 구현’에서는 여러 가지 방식의 클라이언트 응용 프로그램을 구현하는 방법을 알아본다.
4장, ‘서버 응용 프로그램 구현’에서는 여러 가지 방식의 서버 응용 프로그램을 구현하는 방법을 알아본다.
5장, ‘HTTP와 SSL/TLS’에서는 HTTP와 SSL/TLS 프로토콜 구현에 대한 고급 주제들을 살펴본다.
6장, ‘기타’에서는 그다지 유명하지는 않지만 매우 중요한 주제인 타이머, 소켓 설정, 결합 버퍼 등에 대해 알아본다.
목차
목차
- 1장. 기초 지식
- 소개
- 종료점 만들기
- 능동 소켓 만들기
- 수동 소켓 만들기
- DNS 이름 해석하기
- 종료점에 소켓 바인딩하기
- 소켓 연결하기
- 연결 받아들이기
- 2장. I/O 연산
- 소개
- 크기가 고정된 I/O 버퍼 사용하기
- 확장 가능한 스트림 지향 I/O 버퍼 사용하기
- TCP 소켓에 동기적으로 쓰기
- TCP 소켓에서 동기적으로 읽기
- TCP 소켓에 비동기적으로 쓰기
- TCP 소켓에서 비동기적으로 읽기
- 비동기 연산 취소하기
- 소켓 종료하기와 닫기
- 클라이언트 프로그램
- 서버 프로그램
- 소켓 닫기
- 3장. 클라이언트 응용 프로그램구현
- 소개
- 동기 TCP 클라이언트 구현하기
- SyncTCPClient 클래스
- 동기 UDP 클라이언트 구현하기
- 동기 TCP 클라이언트 구현하기
- 요청 완료 - handler() 콜백 함수
- AsyncTCPClient 클래스 – 초기화
- AsyncTCPClient 클래스 – 요청 시작하기
- AsyncTCPClient 클래스 – 요청 취소하기
- AsyncTCPClient 클래스 – 클라이언트 닫기
- 4장. 서버 응용 프로그램 구현
- 소개
- 반복적 동기 TCP 서버 구현
- 단점 없애기
- 병렬 동기 TCP 서버
- 비동기 TCP 서버 구현하기
- 5장. HTTP와 SSL/TLS
- 소개
- HTTP 클라이언트 응용 프로그램 구현하기
- HTTP 서버 응용 프로그램 구현하기
- 클라이언트 응용 프로그램에서 SSL/TLS 지원하기
- 서버 응용 프로그램에서 SSL/TLS 지원하기
- 6장. 기타
- 소개
- 분산/수집 연산을 위해 결합 버퍼 사용하기
- 타이머 사용하기
- 소켓 연산 설정하기와 설정 알아보기
- 스트림 기반 I/O 수행하기
- 시간 제한 설정하기