Writing high-quality networked applications is difficult - it's expensive, complicated, and error-prone. In order to be successful, software for networked applications must be affordable, extensible, flexible, portable, predictable, efficient, reliable, and scalable. This book picks up where volume one left off, and guides C++ programmers through using the ADAPTIVE Communication Environment (ACE), the most complete toolkit available for networked programming. The first volume focused on problem solving and understanding ACE. This second volume focuses on reuse and frameworks. Both volumes are modeled on Richard Stevens' classic UNIX Network Programming. ACE was invented by Doug Schmidt, and is completely open-source. Steve Huston founded a company which provides support for ACE users, and is at the forefront of the growing ACE community.

As networks, devices, and systems continue to evolve, software engineers face the unique challenge of creating reliable distributed applications within frequently changing environments. C++ Network Programming, Volume 1, provides practical solutions for developing and optimizing complex distributed systems using the ADAPTIVE Communication Environment (ACE), a revolutionary open-source framework that runs on dozens of hardware platforms and operating systems.

This book guides software professionals through the traps and pitfalls of developing efficient, portable, and flexible networked applications. It explores the inherent design complexities of concurrent networked applications and the tradeoffs that must be considered when working to master them.

C++ Network Programming begins with an overview of the issues and tools involved in writing distributed concurrent applications. The book then provides the essential design dimensions, patterns, and principles needed to develop flexible and efficient concurrent networked applications. The book's expert author team shows you how to enhance design skills while applying C++ and patterns effectively to develop object-oriented networked applications.

Readers will find coverage of:



C++ network programming, including an overview and strategies for addressing common development challenges The ACE Toolkit
Connection protocols, message exchange, and message-passing versus shared memory
Implementation methods for reusable networked application services
Concurrency in object-oriented network programming
Design principles and patterns for ACE wrapper facades

With this book, C++ developers have at their disposal the most complete toolkit available for developing successful, multiplatform, concurrent networked applications with ease and efficiency.