Home :: Books :: Computers & Internet  

Arts & Photography
Audio CDs
Audiocassettes
Biographies & Memoirs
Business & Investing
Children's Books
Christianity
Comics & Graphic Novels
Computers & Internet

Cooking, Food & Wine
Entertainment
Gay & Lesbian
Health, Mind & Body
History
Home & Garden
Horror
Literature & Fiction
Mystery & Thrillers
Nonfiction
Outdoors & Nature
Parenting & Families
Professional & Technical
Reference
Religion & Spirituality
Romance
Science
Science Fiction & Fantasy
Sports
Teens
Travel
Women's Fiction
UNIX Network Programming

UNIX Network Programming

List Price: $69.00
Your Price:
Product Info Reviews

<< 1 2 >>

Rating: 5 stars
Summary: THE book on its subject
Review: First things first. This is an excellent book. It is also by far the best book on its subject. Those are the first, simplest, and most important things to understand about it.

Before explaining what makes it so good, let's get the table of contents out of the way:

Preface

Part 1. Introduction and TCP/IP

1. Introduction

2. The Transport Layer: TCP and UDP

Part 2. Elementary Sockets

3. Sockets Introduction

4. Elementary TCP Sockets

5. TCP Client-Server Example

6. I/O Multiplexing: The select() and poll() Functions

7. Socket Options

8. Elementary UDP Sockets

9. Elementary Name and Address Conventions

Part 3. Advanced Sockets

10. IPv4 and IPv6 Interoperability

11. Advanced Name and Address Conversions

12. Daemon Processes and 'inetd' Superserver

13. Advanced I/O Functions

14. Unix Domain Protocols

15. Non-Blocking I/O

16. ioctl() Operations

17. Routing Sockets

18. Broadcasting

19. Multicasting

20. Advanced UDP Sockets

21. Out-of-Band Data

22. Signal-Driven I/O

23. Threads

24. IP Options

25. Raw Sockets

26. Datalink Access

27. Client-Server Design Alternatives

Part 4. XTI: X/Open Transport Interface

28. XTI: TCP Clients

29. XTI: Name and Address Functions

30. XTI: TCP Servers

31. XTI: UDP Clients and Servers

32. XTI Options

33. Streams

34. XTI: Additional Functions

Appendix A. IPv4, IPv6, ICMPv4, ICMPv6

Appendix B. Virtual Networks

Appendix C. Debugging Techniques

Appendix D. Miscellaneous Source Code

Appendix E. Solutions to Selected Exercises

Bibliography

Index

Appendices

A. Function Prototypes

B. Miscellaneous Source Code (all source code is available for download)

C. Solutions to Selected Exercises

Bibliography

Index

Understanding why the book is as good as it is requires an understanding of what it does: (1) it serves as a tutorial for learning sockets programming, (2) it serves as an API reference, and (3) it serves as a guide to alternative strategies for network programs. It is not an easy thing to address these three disparate goals at the same time. The way Stevens does it is through his method of presentation.

The lowest-level building block around which Stevens structures his book is the individual function call. For each call (or minor variations on a single call), he provides the C prototype, and then, in text, explains what the function does, what it's arguments are for, and then provides a small C program that demonstrates it in action (all of the sample programs can also be downloaded from the web). These function-level building blocks are arranged into related sets, each of which is a chapter in the book. Each chapter has a wrapper that explains the basic concepts behind the functions in that chapter, and some review exercises at the end. The chapters in turn build on each other, with the most basic ones at the beginning and the more difficult ones towards the end.

The chapters do more, however, than just explain how the functions work, they also present different approaches to structuring socket programs. The basic problem in structuring a socket program is how to handle multiple connections. Choices include iterative vs. concurrent, multi-process vs. single-process, threaded vs. multiplexed. Stevens, in the process of teaching the reader the individual function calls, provides the reader with examples of all of these types of programs, along with a discussion of their relative strengths and weaknesses. I don't know if I can say enough in favor of Stevens' choice to include this material, or enough about the quality of his coverage of it.

Now some caveats. First, I have mixed feelings about the presentation of error handling. Stevens' coverage in the text is excellent, but the sample programs have a tendency to exit on error rather than demonstrate recovery. Also, the XTI coverage is thin; only about 120 pages of this 1,000 page book are about XTI. Finally, Stevens absolutely assumes that the reader knows how to program in C, knows general UNIX programming, and how to use Unix development tools (or at least has some other source from which to learn them). If you don't know C programming, you want to get Kernighan & Ritchie's "The C Programming Language". If you don't know about general UNIX programming, get Stevens' "Advanced Programming in the UNIX Environment". If you don't know the tools, I know of many books, but unfortunately none that I would particularly recommend.

In closing, whatever the caveats, this is clearly a five-star programming book. If you need to write socket programs, it can save you untold amounts of grief. Writing network programs that are efficient, fast, and robust is far from trivial, and you can think of the thousand pages in this book as a thousand ways to avoid a thousand mistakes. While it expensive, it paid for itself for me in the first hour, and every hour since has been a dividend - if only all my investments had worked out this well...

---

Note - this book is listed as volume one of a two volume set, but for network programming, the first volume stands by itself quite well. The second volume is a grab-bag of material on pipes, message queues, mutexes, locks, semaphores, shared memory, and remote procedure calls. For network programming proper, the first volume is all you need.

Rating: 5 stars
Summary: The Bible in this topic
Review: I am a network programmer and this book is truly the bible in this subject. I have read the first edition and bought the second edition to gain an understanding of the new topics such as IPv6. If you are doing any kind of network programming where you need to know TCP or UDP or Multicasting in general, this is THE book. I highly recommend it.

Rating: 5 stars
Summary: It's simply good!
Review: If I want a dog, I won't buy a cat.
The good thing of a cat is, it won't bark.

Rating: 5 stars
Summary: Classical Works!
Review: In my work, Stevens' books are absolutely a must-have reference.
Anytime I am confused, it is clarified somewhere in this two-volume book. Yes, Stevens used a lot of his own wrapper functions instead of the standard library functions, but this doesn't compromise the excellence of his works. The wrapper functions only added some error processing functionalities compared to the standard ones. If you like, you can use the standard library functions in the place of his wrappers, and add your own error processing methods. It is just up to your own taste.

IMHO, this two-volume works is much more better than APUE, for the explanations are much more detailed, and the examples are much more abundant. Yet I am not attacking APUE, it is a good book as well, but maybe not as good as this 2-volume.

I love Stevens' books so much that I wonder why Prentice Hall or Addison-Wesley doesn't want to publish a CD version of his books, just as O'Reilly does.

I hope one day, I can see in the bookstore "The Complete W. Richard Stevens" in one CD. Then I will not hesitate a moment to buy it, and reference it from time time to time with my PC.

Rating: 3 stars
Summary: Great book, but I miss some parts from the 1st edition.
Review: Like the other reviewers, I have to agree that is THE book to own if you are involved in UNIX network programming. So why only a 3 star rating? Read on.

I feel that this second edition is no longer as much of a "beginner's guide" as the first edition was. In the first edition, there was a thoroughly informative, yet concise, description of the UNIX environment. Admittedly, it didn't necessarily directly relate to networking, but for anyone sitting down with little or no UNIX experience, it meant that you could learn everything you needed to get started from one book! With the 1st edition as my guide, I was able to write a basic networking app with multiple processes and inter-process communication in under two weeks with very little UNIX programming background. The second edition strips out this general UNIX information, leaving the novice up a creek. Of course, you could always purchase "Advanced Programmning in the Unix Environment" (also ! ! by Stevens) to cover the lost material, but that's quite a bit of extra money.

Speaking of which, I understand the need to expand on networking topics, thus necessitating multiple volumes. But currently, only this first volume is available, meaning that we don't have a nice inter-process communication reference (slated for volume 2), or applications (volume 3). All of this fit neatly into one volume in the first edition, albeit in a less comprehensive form. But for a beginner, who probably doesn't want to buy three volumes (plus APUE, mentioned above), the concise introduction to networking offered in one book will be sorely missed. Hopefully the 1st edition will still be around for a while for those who don't need all the depth of the new edition. I almost wish I had bought the old edition myself. I guess I'll have to settle for borrowing my co-worker's copy.

Rating: 4 stars
Summary: A good reference
Review: The coding examples weren't so hot in my opinion but this book
provided exactly what I needed to jump on the UNIX network programming bandwagon and remains a reference tool.

Rating: 5 stars
Summary: Its the Bible for Unix Network Programming
Review: This book is worth everything I paid for it. I used it to go from a zero in network programming to being able to write solid client-server applications in a matter of weeks. The examples in the book are pretty good and doesn't leave a bunch of things to your imagination. I think this book is definitely one of those you have to keep available in your personal library.

Rating: 5 stars
Summary: Bravo-excellent coverage of a deep subject
Review: This is one of the best network programming books I have read. The level of detail was perfect not to deep yet detailed enough to make the information useful. The examples were easy to understand and helped guide me in the right direction. He pointed out areas where you might run into portability problems. This book is a must. If you need greater detail TCP/IP Illustrated, Volume 2 is a great follow on book.

Rating: 5 stars
Summary: One of Two Must-Have UNIX Books
Review: This is one of two must-have UNIX books ("UNIX Network Programming" and "Advanced Programming for the UNIX Environment"). After I had been using UNIX for a long time and was getting into more advanced UNIX programming about a decade ago, these two books were recommended. I checked around and made comparisons. Sure enough, I had to agree. I bought both of them and use them a lot, even when doing Windows programming.

As an example, I had to reference them again this weekend. I am using Visual Basic and C++ under Windows to connect some UDP/IP communications between applications. Once again, these books were indispensable (even after looking at online help, Google, Microsoft Knowledge Base and Experts-Exchange). Any Internet professional should have both of these books on their shelf.

Rating: 5 stars
Summary: The best book in class.
Review: This is the best book of its class. I cannot think of working seriouly with TCP/IP programming without reading Stevens' book. The definitive guide.


<< 1 2 >>

© 2004, ReviewFocus or its affiliates