How we did it:
For any feedback, any questions, any notes or just for chat - feel free to follow us on social networks
"This is Effective C++ volume three - it's really that good." - Herb Sutter, independent consultant and secretary of the ISO/ANSI C++ standards committee "There are very few books which all C++ programmers must have. Add Effective STL to that list." - Thomas Becker, Senior Software Engineer, Zephyr Associates, Inc., and columnist, C/C++ Users Journal C++'s Standard Template Library is revolutionary, but learning to use it well has always been a challenge. Until now. In this book, best-selling author Scott Meyers ( Effective C++ , and More Effective C++ ) reveals the critical rules of thumb employed by the experts - the things they almost always do or almost always avoid doing - to get the most out of the library. Other books describe what's in the STL. Effective STL shows you how to use it. Each of the book's 50 guidelines is backed by Meyers' legendary analysis and incisive examples, so you'll learn not only what to do, but also when to do it - and why. Highlights of Effective STL include: Advice on choosing among standard STL containers (like vector and list), nonstandard STL containers (like hash_set and hash_map), and non-STL containers (like bitset). Techniques to maximize the efficiency of the STL and the programs that use it. Insights into the behavior of iterators, function objects, and allocators, including things you should not do. Guidance for the proper use of algorithms and member functions whose names are the same (e.g., find), but whose actions differ in subtle (but important) ways. Discussions of potential portability problems, including straightforward ways to avoid them. Like Meyers' previous books, Effective STL is filled with proven wisdom that comes only from experience. Its clear, concise, penetrating style makes it an essential resource for every STL programmer.
W. Richard Stevens, Bill Fenner, Andrew M. Rudoff
* *Previous editions sold over 160,000 units! Second Edition (1998) sold over 53,000 in retail alone! *Updates coverage of programming standards, debugging techniques, and covers Operating Systems including Red Hat 9, Solaris 9, HP-UX, Free BSD 4.8/5.0, AIX 5.x, and Mac OS X. *Bill Fenner (AT/T Labs) and Andrew Rudoff (SUN) carry on the tradition of this great work.
W. Richard Stevens, Gary R. Wright
This book's innovative approach helps readers at all levels to truly understand how TCP/IP really works. Rather than just describing what the RFCs say the protocol suite should do, TCP/IP Illustrated uses a popular diagnostic tool so you can actually watch the protocols in action. By forcing certain conditions to occur (connection establishment, timeout and retransmission, fragmentation, etc.) and watching the results, Rich Stevens provides insight into how the protocols work, and why certain design decisions were made. Written in his well-known style with lots of examples, Stevens shows how current, popular TCP/IP implementations operate (SunOS 4.1.3, Solaris 2.2, System V Release 4, BSD/386, AIX 3.2.2, and 4.4 BSD), and relates these real-world implementations to the RFC standards.
W. Richard Stevens, Stephen A. Rago
"Stephen Rago's update is a long overdue benefit to the community of professionals using the versatile family of UNIX and UNIX-like operating environments. It removes obsolescence and includes newer developments. It also thoroughly updates the context of all topics, examples, and applications to recent releases of popular implementations of UNIX and UNIX-like environments. And yet, it does all this while retaining the style and taste of the original classic." --Mukesh Kacker, cofounder and former CTO of Pronto Networks, Inc. "One of the essential classics of UNIX programming." --Eric S. Raymond, author of The Art of UNIX Programming "This is the definitive reference book for any serious or professional UNIX systems programmer. Rago has updated and extended the classic Stevens text while keeping true to the original. The APIs are illuminated by clear examples of their use. He also mentions many of the pitfalls to look out for when programming across different UNIX system implementations and points out how to avoid these pitfalls using relevant standards such as POSIX 1003.1, 2004 edition and the Single UNIX Specification, Version 3." --Andrew Josey, Director, Certification, The Open Group, and Chair of the POSIX 1003.1 Working Group "Advanced Programming in the UNIX® Environment, Second Edition, is an essential reference for anyone writing programs for a UNIX system. It's the first book I turn to when I want to understand or re-learn any of the various system interfaces. Stephen Rago has successfully revised this book to incorporate newer operating systems such as GNU/Linux and Apple's OS X while keeping true to the first edition in terms of both readability and usefulness. It will always have a place right next to my computer." --Dr. Benjamin Kuperman, Swarthmore College Praise for the First Edition "Advanced Programming in the UNIX® Environment is a must-have for any serious C programmer who works under UNIX. Its depth, thoroughness, and clarity of explana-tion are unmatched." --UniForum Monthly "Numerous readers recommended Advanced Programming in the UNIX® Environment by W. Richard Stevens (Addison-Wesley), and I'm glad they did; I hadn't even heard of this book, and it's been out since 1992. I just got my hands on a copy, and the first few chapters have been fascinating." --Open Systems Today "A much more readable and detailed treatment of UNIX internals can be found in Advanced Programming in the UNIX® Environment by W. Richard Stevens (Addison-Wesley). This book includes lots of realistic examples, and I find it quite helpful when I have systems programming tasks to do." --RS/Magazine "This is the definitive reference book for any serious or professional UNIX systems programmer. Rago has updated and extended the original Stevens classic while keeping true to the original." --Andrew Josey, Director, Certification, The Open Group, and Chair of the POSIX 1003.1 Working Group For over a decade, serious C programmers have relied on one book for practical, in-depth knowledge of the programming interfaces that drive the UNIX and Linux kernels: W. Richard Stevens' Advanced Programming in the UNIX® Environment . Now, Stevens' colleague Stephen Rago has thoroughly updated this classic to reflect the latest technical advances and add support for today's leading UNIX and Linux platforms. Rago carefully retains the spirit and approach that made this book a classic. Building on Stevens' work, he begins with basic topics such as files, directories, and processes, carefully laying the groundwork for understanding more advanced techniques, such as signal handling and terminal I/O. Substantial new material includes chapters on threads and multithreaded programming, using the socket interface to drive interprocess communication (IPC), and extensive coverage of the interfaces added to the latest version of the POSIX.1 standard. Nearly all examples have been tested on four of today's most widely used UNIX/Linux platforms: FreeBSD 5.2.1; the Linux 2.4.22 kernel; Solaris 9; and Darwin 7.4.0, the FreeBSD/Mach hybrid underlying Apple's Mac OS X 10.3. As in the first edition, you'll learn through example, including more than 10,000 lines of downloadable, ANSI C source code. More than 400 system calls and functions are demonstrated with concise, complete programs that clearly illustrate their usage, arguments, and return values. To tie together what you've learned, the book presents several chapter-length case studies, each fully updated for contemporary environments. Advanced Programming in the UNIX® Environment has helped a generation of programmers write code with exceptional power, performance, and reliability. Now updated for today's UNIX/Linux systems, this second edition will be even more indispensable.
Nicolai M. Josuttis
A proven best-seller, updated for the new standard: still the most practical C++ Standard Library tutorial and most complete reference * *Thoroughly documents each library component incorporated in the brand-new C++ standard. *Clearly explains complex concepts, and presents the practical detail programmers need to use the Standard Library effectively. *Contains many examples of working code, all available for download at an accompanying website. The C++ Standard Library, 2/e, doesn't just provide comprehensive documentation of every library component associated with the newest C++ standard: it also offers clearly-written explanations of complex concepts, reviews practical programming details needed for effective use, and presents many useful examples of working code - all of them available for download. Fully updated to reflect the newest elements of the C++ Standard Library incorporated into the full ANSI/ISO C++ language standard, this book examines containers, iterators, function objects, STL algorithms, special containers, strings, numerical classes, internationalization, the IOStream library, and much more. Every component is presented in depth: Josuttis explains its purpose and design, presents crystal-clear examples, identifies traps and pitfalls, and offers exact signatures and definitions of its classes and functions. Comprehensive, detailed, readable, and practical, Josuttis' The C++ Standard Library has established itself as the definitive book on the topic: working developers will find this new edition even more useful.
Kay A. Robbins, Steven Robbins
• •Learn UNIX essentials with a concentration on communication, concurrency, and multithreading techniques •Full of ideas on how to design and implement good software along with unique projects throughout •Excellent companion to Stevens' Advanced UNIX System Programming
Stephen D. Huston, James C. E. Johnson, Umar Syyid
* *An intro guide for ACE beginners, and an authoritative reference for all ACE users. *Foreword by Dr. Douglas C. Schmidt--the original developer of ACE. *ACE is an excellent example of how to design object-oriented software and use C++ to design and write high-performance, easily maintained software systems.
W. Richard Stevens
A practical book that explains many of the details that have been considered a mystery, this guidebook focuses on the design, development, and coding of networking software under the UNIX operating system. It begins by showing how a fundamental basic for networking programming is interprocess communication (IPC), and a requisite for understanding IPC is a knowledge of what constitutes a process. Throughout, the text provides both a description and examples of how and why a particular solution is arrived at.
""This is the best book on SSL/TLS. Rescorla knows SSL/TLS as well as anyone and presents it both clearly and completely.... At times, I felt like he's been looking over my shoulder when I designed SSL v3. If network security matters to you, buy this book."" Paul Kocher, Cryptography Research, Inc. Co-Designer of SSL v3 " "Having the right crypto is necessary but not sufficient to having secure communications. If you're using SSL/TLS, you should have "SSL and TLS"sitting on your shelf right next to "Applied Cryptography." Bruce Schneier, Counterpane Internet Security, Inc. Author of "Applied Cryptography"" "Everything you wanted to know about SSL/TLS in one place. It covers the protocols down to the level of packet traces. It covers how to write software that uses SSL/TLS. And it contrasts SSL with other approaches. All this while being technically sound and readable!"" Radia Perlman, Sun Microsystems, Inc. Author of "Interconnections" Secure Sockets Layer (SSL) and its IETF successor, Transport Layer Security (TLS), are the leading Internet security protocols, providing security for e-commerce, web services, and many other network functions. Using SSL/TLS effectively requires a firm grasp of its role in network communications, its security properties, and its performance characteristics. "SSL and TLS" provides total coverage of the protocols from the bits on the wire up to application programming. This comprehensive book not only describes how SSL/TLS is supposed to behave but also uses the author's free ssldump diagnostic tool to show the protocols in action. The author covers each protocol feature, first explaining how it works and then illustrating it in a live implementation. This unique presentation bridges the difficult gap between specification and implementation that is a common source of confusion and incompatibility. In addition to describing the protocols, "SSL and TLS" delivers the essential details required by security architects, application designers, and software engineers. Use the practical design rules in this book to quickly design fast and secure systems using SSL/TLS. These design rules are illustrated with chapters covering the new IETF standards for HTTP and SMTP over TLS. Written by an experienced SSL implementor, "SSL and TLS" contains detailed information on programming SSL applications. The author discusses the common problems faced by implementors and provides complete sample programs illustrating the solutions in both C and Java. The sample programs use the free OpenSSL and PureTLS toolkits so the reader can immediately run the examples. 0201615983B04062001
W. Richard Stevens
The only guide to UNIX network programming APIs you'll ever need! Whether you write Web servers, client/server applications, or any other network software, you need to understand networking APIS--especially sockets in greater detail than ever before. You need "UNIX Network Programming, Volume 1, Second Edition." In this book, leading UNIX networking expert W. Richard Stevens offers unprecedented, start-to-finish guidance on making the most of sockets, the de facto standard for UNIX network programming--as well as extensive coverage of the X/Open Transport Interface (XTI). Stevens begins by introducing virtually every basic capability of TCP and UDP sockets, including socket functions and options, I/O multiplexing, and name and address conversions. He presents detailed coverage of the Posix.1g standard for sockets and the Posix threads. He also introduces advanced techniques for: Establishing IPv4/IPv6 interoperability. Implementing non-blocking I/O. Routing sockets. Broadcasting and multicasting. IP options. Multithreading. Advanced name and address conversions. UNIX domain protocols. Raw sockets. Learn how to choose among today's leading client/server design approaches, including TCP iterative, concurrent, preforked and prethreaded servers. Master the X/Open Transport Interface, including XTI TCP clients and servers, name and address functions, options, streams and additional functions. The Internet/intranet revolution has dramatically increased the demand for developers with a sophisticated understanding of network programming APIs, especially sockets. One book contains all you need to know: "UNIX Network Programming, Volume 1, Second Edition."
Douglas C. Schmidt, Stephen D. Huston
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.
Anthony Jones, Jim Ohlund
Practical explanations are given of Microsoft's networking APIs. This definitive reference covers the network programming interfaces available on the Windows 98, Windows NT/200, and Windows CE platforms. The CD-ROM features reusable code examples in Visual C++.
Lincoln D. Stein
A text focusing on the methods and alternatives for designed TCP/IP-based client/server systems and advanced techniques for specialized applications with Perl. A guide examining a collection of the best third party modules in the Comprehensive Perl Archive Network. Topics covered: Perl function libraries and techniques that allow programs to interact with resources over a network. IO: Socket library ; Net: FTP library -- Telnet library -- SMTP library ; Chat problems ; Internet Message Access Protocol (IMAP) issues ; Markup-language parsing ; Internet Protocol (IP) broadcasting and multicasting.
To guide readers through the new scripting language, Python, this book discusses every aspect of client and server programming. And as Python begins to replace Perl as a favorite programming language, this book will benefit scripters and serious application developers who want a feature-rich, yet simple language, for deploying their products. The text explains multitasking network servers using several models, including forking, threading, and non-blocking sockets. Furthermore, the extensive examples demonstrate important concepts and practices, and provide a cadre of fully-functioning stand alone programs. Readers may even use the provided examples as building blocks to create their own software.
Andrew S. Tanenbaum, David Wetherall
Computer Networks, 5/e is appropriate for Computer Networking or Introduction to Networking courses at both the undergraduate and graduate level in Computer Science, Electrical Engineering, CIS, MIS, and Business Departments. Tanenbaum takes a structured approach to explaining how networks work from the inside out. He starts with an explanation of the physical layer of networking, computer hardware and transmission systems; then works his way up to network applications. Tanenbaum's in-depth application coverage includes email; the domain name system; the World Wide Web (both client- and server-side); and multimedia (including voice over IP, Internet radio video on demand, video conferencing, and streaming media. Each chapter follows a consistent approach: Tanenbaum presents key principles, then illustrates them utilizing real-world example networks that run through the entire book—the Internet, and wireless networks, including Wireless LANs, broadband wireless and Bluetooth. The Fifth Edition includes a chapter devoted exclusively to network security. The textbook is supplemented by a Solutions Manual, as well as a Website containing PowerPoint slides, art in various forms, and other tools for instruction, including a protocol simulator whereby students can develop and test their own network protocols.
Java Network Programming, Third Edition, brings you up-to-date with the latest features of Java's network APIS. This book discusses all the changes and additions to networking in JDK 1.4 and 1.5 (now christened J2SE 5). It covers everything from networking fundamentals to remote method invocation (RMI), including chapters on TCP and UDP sockets, server sockets, URLs and URIs, multicasting, and special-purpose APIS such as JavaMail. This book shows you how to use JSSE to write secure networking applications and explains how to use the NIO APIs to write ultra high-performance servers. And it covers Java's support for network proxies, web cookies, and URL caching. Java Network Programming doesn't just explain the APIS: it shows you how to put them to work. This book is full of examples; it contains thousands of lines of working code (all of which are available online), implementing fully functional network clients and servers. Whether you want to write a special-purpose web server, a secure online order taker, a simple multicast agent, or even an email client, you'll find code that you can learn from and borrow. Whether you're an experienced network developer, a new Java programmer, or someone who just wants to see what's possible, you'll find that Java Network Programming, Third Edition is an important part of your library. Once you've started using the Java Networking APIs, the possibilities are only limited by your imagination.
David B. Makofske, Michael J. Donahoo, Kenneth L. Calvert
This volume focuses on the underlying sockets class, one of the basis for learning about networks in any programming language. By learning to write simple client and server programs that use TCP/IP, readers can then realize network routing, framing, error detection and correction, and performance.
Jon C. Snader
Programming in TCP/IP can seem deceptively simple. Nonetheless, many network programmers recognize that their applications could be much more robust. "Effective TCP/IP Programming" is designed to boost programmers to a higher level of competence by focusing on the protocol suite's more subtle features and techniques. It gives you the know-how you need to produce highly effective TCP/IP programs. In forty-four concise, self-contained lessons, this book offers experience-based tips, practices, and rules of thumb for learning high-performance TCP/IP programming techniques. Moreover, it shows you how to avoid many of TCP/IP's most common trouble spots. "Effective TCP/IP Programming" offers valuable advice on such topics as: Exploring IP addressing, subnets, and CIDR Preferring the sockets interface over XTI/TLI Using two TCP connections Making your applications event-driven Using one large write instead of multiple small writes Avoiding data copying Understanding what TCP reliability really means Recognizing the effects of buffer sizes Using tcpdump, traceroute, netstat, and ping effectively Numerous examples demonstrate essential ideas and concepts. Skeleton code and a library of common functions allow you to write applications without having to worry about routine chores. Through individual tips and explanations, you will acquire an overall understanding of TCP/IP's inner workings and the practical knowledge needed to put it to work. Using "Effective TCP/IP Programming," you'll speed through the learning process and quickly achieve the programming capabilities of a seasoned pro. 0201615894B04062001
The book provides complete coverage of fundamental IP networking in Java. It introduces the concepts behind TCP/IP and UDP and their intended use and purpose; gives complete coverage of Java networking APIs, includes an extended discussion of advanced server design, so that the various design principles and tradeoffs concerned are discussed and equips the reader with analytic queuing-theory tools to evaluate design alternatives; covers UDP multicasting, and covers multi-homed hosts, leading the reader to understand the extra programming steps and design considerations required in such environments. After reading this book the reader will have an advanced knowledge of fundamental network design and programming concepts in the Java language, enabling them to design and implement distributed applications with advanced features and to predict their performance. Special emphasis is given to the scalable I/O facilities of Java 1.4 as well as complete treatments of multi-homing and UDP both unicast and multicast.
Stephen A. Thomas
The first complete reference guide to the essential Web protocol As applications and services converge and Web technologies not only assume HTTP but require developers to manipulate it, it is becoming increasingly crucial for network managers, Web masters, and anyone working with HTTP to understand the nuts and bolts of this most prevalent Web protocol. This book provides complete documentation and explanation of the protocol, including advanced and experimental extensions. Readers will get core guidance on implementing HTTP 1.1 in their products, including how to accelerate HTTP in large scale Web sites, how to secure it, and how to handle compatibility issues with versions 0.9 and 1.0. HTTP switching and invisible HTTP operations such as option negotiations, status checks, and path tracing are also examined.
With the release of .NET, Microsoft has once again altered the distributed programming landscape. Almost everything has changed, from data access, to remote object calls, to the deployment of software components. And of course, .NET introduces a new technology in XML Web services that may revolutionize Web development. Distributed .NET Programming in C# describes how to use these new .NET technologies to build fast, scalable, and robust distributed applications. Along the way, it answers common questions such as, How do I use the .NET Remoting Framework? What role does COM+ play in the .NET universe? How can I interoperate with COM components? What's the difference between .NET Remoting and Web services? How will these changes affect the architecture and design of a distributed application? Author Tom Barnaby assumes the reader is already familiar with the fundamentals of .NET. However, a .NET overview is provided to concisely explain several of the core .NET technologies that are essential for distributed programming, including building, versioning, and deploying assemblies; garbage collection; serialization; and attribute-based programming.
Stuart Cheshire, Daniel Steinberg
It used to be that two laptops, sitting side by side, couldn't communicate with each other; they may as well have been a thousand miles apart. But that was then, before the advent of Zero Configuration Networking technology. This amazing cross-platform open source technology automatically connects electronic devices on a network, allowing them to interoperate seamlessly-without any user configuration. So now you don't have to lift a finger! Needless to say, it has completely changed the way people connect to devices and programs for printing, file sharing, and other activities. Zero Configuration Networking: The Definitive Guide walks you through this groundbreaking network technology, with a complete description of the protocols and ways to implement network-aware applications and devices. Written by two Zero Configuration Networking experts, including one of Apple's own computer scientists, the book covers more than just file sharing and printing. Zero Configuration Networking also enables activities such as music and photo sharing and automatic buddy discovery on Instant Messaging applications. In fact, Zero Configuration Networking can be used for virtually any device that can be controlled by a computer. And this handy guide has the inside scoop on all of its capabilities-and how you can easily apply them in your own environment. For the technically advanced, Zero Configuration Networking: The Definitive Guide examines the three core technologies that make up Zero Configuration Networking: Link-Local Addressing, Multicast DNS, and DNS Service Discovery. It also reviews a series of APIs, including C-API, Java API, CFNetServices, and Cocoa's NSNetServices. Whether you want to understand how iTunes works, or you want to network a series of laptops and other devices at your office for maximum efficiency, you'll find all the answers in this authoritative guide.