Location:  Home » Software Book » UNIX Network Programming: Networking APIs: Sockets and XTI; Volume 1  

UNIX Network Programming: Networking APIs: Sockets and XTI; Volume 1

UNIX Network Programming: Networking APIs: Sockets and XTI; Volume 1Author: W. Richard Stevens
Publisher: Prentice Hall PTR
Category: Book

List Price: $69.00
Buy Used: $2.25
as of 7/31/2010 17:03 CDT details
You Save: $66.75 (97%)

Qty 1 In Stock


New (4) Used (74) from $2.25

Seller: HPB-Outlet
Rating: 4.5 out of 5 stars 47 reviews
Sales Rank: 595590

Media: Hardcover
Edition: 2nd
Pages: 1009
Number Of Items: 1
Shipping Weight (lbs): 3.8
Dimensions (in): 9.3 x 7.4 x 1.7

ISBN: 013490012X
Dewey Decimal Number: 005.712768
UPC: 076092003076
EAN: 9780134900124
ASIN: 013490012X

Publication Date: January 15, 1998
Availability: Usually ships in 1-2 business days

Similar Items:


Editorial Reviews:

Amazon.com Review
The classic programming text Unix Network Programming has been updated by author W. Richard Stevens to encompass three new volumes. There have been a few changes in the computing world since 1990 (the year the original was published), and Stevens has taken the opportunity to create a complete set of reference manuals for programmers of all skill levels.

The first volume, Networking APIs: Sockets and XTI, covers everything you need to know to make your programs communicate over networks. Stevens covers everything from writing your programs to be compatible with both Internet Protocol version 4 (IPv4) and IPv6, to raw sockets, routing sockets, User Datagram Protocol (UDP), broadcasting/multicasting, routing sockets, server internals, and more, plus a section covering Posix threads.

Stevens also notes compatibility issues with different operating systems so that readers can create code that is more portable, and he offers plenty of advice on how to make code more robust. --Doug Beaver

Product Description
Thorough and authoritative, this book contains comprehensive coverage of the sockets API, the defacto standard for network programming. Once the basics are covered, the author moves on to advanced sockets topics, including IPv4 and IPv6 interoperability, UNIX domain protocols, nonblocking I/O, broadcasting, multicasting, threads and routing sockets. Client/server design alternatives are also fully examined.


Customer Reviews:
Showing reviews 1-5 of 47
1 2 3 4 5 6 ...10Next »



5 out of 5 stars One of Two Must-Have UNIX Books   March 3, 2003
Randy Given (Manchester, CT USA)
15 out of 15 found this review helpful

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.


5 out of 5 stars THE book on its subject   July 15, 2001
Bowen Simmons (Sunnyvale, CA USA)
22 out of 24 found this review helpful

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.


5 out of 5 stars Very well done   February 18, 2000
cal
12 out of 12 found this review helpful

W. Stevens is actually the departed person I think most about missing. Just browsing through his book, I learned more about networking and network programming than I have from any other place. Any implemtation, no matter the language or platform, is relatively transparent after reading this book.

He gives a great deal of himself in all his books I've read; sharing the little test programs he writes to finally pin down how something is implemented. And he did all the grunt work of communicating with people like Kernighan and Ritchie to elucidate some points that are not found in books.

This is a very good teacher of his field, which happens to be perhaps the most explosive field of this time.


5 out of 5 stars Its the Bible for Unix Network Programming   July 31, 2000
Kaushik Raghavan (IL United States)
9 out of 9 found this review helpful

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.


5 out of 5 stars Answered all my questions, and then some!   October 15, 1999
Chris H. (Portland, OR United States)
9 out of 9 found this review helpful

This is one of the best programming books I have bought! I had several questions I was battling with on current projects, and this book helped greatly in getting resolution. With a server app on a Solaris box, I was able to get all my client apps on Linux, SCO, and even Winsuck to communicate seamlessly, and efficiently! Not for the absolute beginner, some tweaking is needed on some platforms, but anyone with basic C skills and eager to learn this material, this is a must have book!

Showing reviews 1-5 of 47
1 2 3 4 5 6 ...10Next »


Subcategories
Mathematics
Applied
General
General AAS
Geometry & Topology
History
Infinity
Mathematical Analysis
Matrices
Number Systems
Popular & Elementary
Pure Mathematics
Reference
Research
Study & Teaching
Transformations
Trigonometry