Boost.Asio C++ Network Programming
Formats:
save 15%!
save 39%!
Free Shipping!
| Also available on: |
|
- 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
Book Details
Language : EnglishPaperback : 156 pages [ 235mm x 191mm ]
Release Date : February 2013
ISBN : 1782163263
ISBN 13 : 9781782163268
Author(s) : John Torjo
Topics and Technologies : All Books, Open Source
Table of Contents
PrefaceChapter 1: Getting Started with Boost.Asio
Chapter 2: Boost.Asio Fundamentals
Chapter 3: Echo Server/Clients
Chapter 4: Client and Server
Chapter 5: Synchronous Versus Asynchronous
Chapter 6: Boost.Asio – Other Features
Chapter 7: Boost.Asio – Advanced Topics
Index
- Chapter 1: Getting Started with Boost.Asio
- What is Boost.Asio?
- History
- Dependencies
- Building Boost.Asio
- Important macros
- Synchronous versus asynchronous
- Exceptions versus error codes
- Threading in Boost.Asio
- Not just networking
- Timers
- The io_service class
- Summary
- Chapter 2: Boost.Asio Fundamentals
- The Network API
- Boost.Asio namespaces
- IP addresses
- Endpoints
- Sockets
- Synchronous error codes
- Socket member functions
- Other considerations
- The read/write/connect free functions
- The connect functions
- The read/write functions
- Asynchronous programming
- The need for going asynchronous
- Asynchronous run(), run_one(), poll(), poll_one()
- Running forever
- The run_one(), poll(), poll_one() functions
- Asynchronous work
- Asynchronous post() versus dispatch() versus wrap()
- Staying alive
- Summary
- Chapter 3: Echo Server/Clients
- TCP Echo server/clients
- TCP synchronous client
- TCP synchronous server
- TCP asynchronous client
- TCP asynchronous server
- The code
- UDP Echo server/clients
- UDP synchronous Echo client
- UDP synchronous Echo server
- Summary
- Chapter 4: Client and Server
- The synchronous client/server
- Synchronous client
- Synchronous server
- The asynchronous client/server
- Asynchronous client
- Asynchronous server
- Summary
- Chapter 5: Synchronous Versus Asynchronous
- Mixing synchronous and asynchronous programming
- Passing client to server messages and vice versa
- Synchronous I/O in client applications
- Synchronous I/O in server applications
- Threading in a synchronous server
- Asynchronous I/O in client applications
- Asynchronous I/O in server applications
- Threading in an asynchronous server
- Asynchronous operations
- Implementing proxies
- Summary
- Chapter 6: Boost.Asio – Other Features
- std streams and std buffer I/O
- Boost.Asio and the STL streams
- The streambuf class
- The free functions that deal with streambuf objects
- Co-routines
- Summary
- Chapter 7: Boost.Asio – Advanced Topics
- Asio versus Boost.Asio
- Debugging
- Handler tracking information
- An example
- Handler tracking to file
- SSL
- Boost.Asio Windows features
- Stream Handles
- Random access Handles
- Object Handles
- Boost.Asio POSIX features
- Local sockets
- Connecting local sockets
- POSIX file descriptors
- Fork
- Summary
John Torjo
Torjo really explains and breaks down in detail the reasons why a programmer would want to use Synchronous or Asynchronous programming - Chad Stevens
Code Downloads
Download the code and support files for this book.
Submit Errata
Please let us know if you have found any errors not listed on this list by completing our errata submission form. Our editors will check them and add them to this list. Thank you.
Sorry, there are currently no downloads available for this title.
- 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
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 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.
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.

