Boost.Asio C++ Network Programming

John Torjo

  • 出版商: Packt Publishing
  • 出版日期: 2013-02-22
  • 售價: $1,420
  • 貴賓價: 9.5$1,349
  • 語言: 英文
  • 頁數: 156
  • 裝訂: Paperback
  • ISBN: 1782163263
  • ISBN-13: 9781782163268
  • 相關分類: C++ 程式語言
  • 下單後立即進貨 (約3~4週)

商品描述

Enhance your skills with practical examples for C++ network programming

Overview

  • Augment your C++ network programming using Boost.Asio
  • Discover how Boost.Asio handles synchronous and asynchronous programming models.
  • Practical examples of client/server applications.
  • Learn how to deal with threading when writing network applications.
  • Harness the power of Boost with plenty of examples that you can build upon.

In Detail

Network programming is not new and it's no secret that it's not an easy task. Boost.Asio provides an excellent level of abstraction, making sure that with a minimal amount of coding you can create beautiful client/server applications, and have fun in the process!.

"Boost.Asio C++ Network Programming" shows how to build client/server applications using a library that is part of the popular peer-reviewed Boost C++ Libraries. It analyzes whether you should go synchronous or asynchronous and the role that threading plays, whilst providing examples you can run and extend for yourself.

After covering the fundamentals of Boost.Asio you'll discover how you can build synchronous and asynchronous clients and servers. You will also see how you can have your own asynchronous functions play nice with Boost.Asio. As a bonus, we will introduce co-routines, which make asynchronous programming a piece of cake. Nowadays, network programming is a must, no matter what type of programmer you are. "Boost.Asio C++ Network Programming" shows just how simple networking can be, if you’re using the right tools.

What you will learn from this book

  • How to easily reference Boost.Asio programming.
  • Synchronous versus asynchronous using Boost.Asio.
  • How threading affects programming using Boost.Asio.
  • Create your own echo client and server.
  • More examples of client/server applications, both synchronous and asynchronous.
  • Implement your own asynchronous operations.
  • Co-routines: asynchronous operations with a synchronous feel.
  • Use Boost.Asio for SSL Networking.
  • Debug Boost.Asio.
  • Use Boost.Asio for more than just networking.

Approach

What you want is an easy level of abstraction, which is just what this book provides in conjunction with Boost.Asio. Switching to Boost.Asio is just a few extra #include directives away, with the help of this practical and engaging guide.

Who this book is written for

This book is great for developers that need to do network programming, who don't want to delve into the complicated issues of a raw networking API. You should be familiar with core Boost concepts, such as smart pointers and shared_from_this, resource classes (noncopyable), functors and boost::bind, boost mutexes, and the boost date/time library. Readers should also be familiar with "blocking" versus "non-blocking" operations.

商品描述(中文翻譯)

增強你的C++網路程式設計技能,並以實際範例來學習。

概述:
- 使用Boost.Asio來增強你的C++網路程式設計。
- 了解Boost.Asio如何處理同步和非同步程式設計模型。
- 提供客戶端/伺服器應用程式的實際範例。
- 學習在撰寫網路應用程式時如何處理多執行緒。
- 利用大量範例來展示如何運用Boost的強大功能。

詳細內容:
網路程式設計並不新鮮,也不是什麼秘密,它並不容易。Boost.Asio提供了優秀的抽象層,確保你只需少量的程式碼就能創建出漂亮的客戶端/伺服器應用程式,並且在過程中享受樂趣!

《Boost.Asio C++網路程式設計》展示了如何使用Boost C++庫中的一個受到廣泛評價的庫來建立客戶端/伺服器應用程式。它分析了你應該選擇同步還是非同步以及執行緒的角色,同時提供了可以運行和擴展的範例。

在介紹了Boost.Asio的基礎知識後,你將學習如何建立同步和非同步的客戶端和伺服器。你還將看到如何讓你自己的非同步函數與Boost.Asio協同工作。作為額外的禮物,我們還將介紹協同程序,使非同步程式設計變得輕而易舉。現在,無論你是什麼類型的程式設計師,網路程式設計都是必須的。《Boost.Asio C++網路程式設計》展示了如果使用正確的工具,網路程式設計可以變得非常簡單。

本書的學習重點:
- 如何輕鬆參考Boost.Asio程式設計。
- 使用Boost.Asio進行同步和非同步程式設計。
- 執行緒如何影響使用Boost.Asio進行程式設計。
- 建立自己的回應式客戶端和伺服器。
- 更多同步和非同步客戶端/伺服器應用程式的範例。
- 實現自己的非同步操作。
- 協同程序:具有同步感覺的非同步操作。
- 使用Boost.Asio進行SSL網路程式設計。
- 調試Boost.Asio。
- 使用Boost.Asio進行更多不僅僅是網路程式設計的工作。

這本書的特點:
你所需要的是一個簡單的抽象層,這正是本書與Boost.Asio一起提供的。只需幾個額外的#include指示,就可以切換到Boost.Asio,這本實用而引人入勝的指南將提供幫助。

本書的讀者對象:
本書適合需要進行網路程式設計的開發人員,他們不想深入研究原始網路API的複雜問題。你應該熟悉核心的Boost概念,如智能指針和shared_from_this、資源類(noncopyable)、函子和boost::bind、boost互斥鎖以及boost日期/時間庫。讀者還應該熟悉“阻塞”與“非阻塞”操作的概念。