Vous voulez voir cette page en français ? Cliquez ici.


or
Sign in to turn on 1-Click ordering.
More Buying Choices
Have one to sell? Sell yours here
Unix Network Programming, Volume 1: The Sockets Networking API
 
See larger image
 

Unix Network Programming, Volume 1: The Sockets Networking API [Hardcover]

W. Richard Stevens , Bill Fenner , Andrew M. Rudoff
4.8 out of 5 stars  See all reviews (11 customer reviews)
List Price: CDN$ 83.99
Price: CDN$ 52.91 & this item ships for FREE with Super Saver Shipping. Details
You Save: CDN$ 31.08 (37%)
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
In Stock.
Ships from and sold by Amazon.ca. Gift-wrap available.
Only 2 left in stock--order soon (more on the way).
Want it delivered Monday, February 13? Choose One-Day Shipping at checkout.

Frequently Bought Together

Customers buy this book with Advanced Programming in the UNIX Environment: Paperback Edition CDN$ 45.98

Unix Network Programming, Volume 1: The Sockets Networking API + Advanced Programming in the UNIX Environment: Paperback Edition
Price For Both: CDN$ 98.89

Show availability and shipping details

  • This item: Unix Network Programming, Volume 1: The Sockets Networking API

    In Stock.
    Ships from and sold by Amazon.ca.
    This item ships for FREE with Super Saver Shipping. Details

  • Advanced Programming in the UNIX Environment: Paperback Edition

    In Stock.
    Ships from and sold by Amazon.ca.
    This item ships for FREE with Super Saver Shipping. Details


Customers Who Bought This Item Also Bought


Product Details


Product Description

Product Description

This is THE guide to UNIX network programming APIs. 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, Third Edition. In this book, the Authors offer unprecedented, start-to-finish guidance on making the most of sockets, the de facto standard for UNIX network programming with APIs - as well as extensive coverage of the X/Open Transport Interface (XTI).

From the Inside Flap

PrefaceIntroductionThis book is for people who want to write programs that communicate with each otherusing an application program interface (API) known as sockets. Some readers may bevery familiar with sockets already, as that model has become synonymous with networkprogramming. Others may need an introduction to sockets from the ground up. Thegoal of this book is to offer guidance on network programming for beginners as well asprofessionals, for those developing new network-aware applications as well as thosemaintaining existing code, and for people who simply want to understand how the networkingcomponents of their system function.

All the examples in this text are actual, runnable code tested on Unix systems.However, many non-Unix systems support the sockets API and the examples arelargely operating system-independent, as are the general concepts we present. Virtuallyevery operating system (OS) provides numerous network-aware applications such asWeb browsers, email clients, and file-sharing servers. We discuss the usual partitioningof these applications into client and server and write our own small examples of thesemany times throughout the text.

Presenting this material in a Unix-oriented fashion has the natural side effect of providingbackground on Unix itself, and on TCP/IP as well. Where more extensive backgroundmay be interesting, we refer the reader to other texts. Four texts are so commonlymentioned in this book that we've assigned them the following abbreviations:

  • APUE: Advanced Programming in the UNIX Environment Stevens 1992
  • TCPv1: TCP/IP Illustrated, Volume 1 Stevens 1994
  • TCPv2: TCP/IP Illustrated, Volume 2 Wright and Stevens 1995
  • TCPv3: TCP/IP Illustrated, Volume 3 Stevens 1996
TCPv2 contains a high level of detail very closely related to the material in this book, asit describes and presents the actual 4.4BSD implementation of the network programmingfunctions for the sockets API (socket, bind, connect, and so on). If one understandsthe implementation of a feature, the use of that feature in an application makesmore sense.

Changes from the Second EditionSockets have been around, more or less in their current form, since the 1980s, and it is atribute to their initial design that they have continued to be the network API of choice.Therefore, it may come as a surprise to learn that quite a bit has changed since the secondedition of this book was published in 1998. The changes we've made to the text aresummarized as follows:

  • This new edition contains updated information on IPv6, which was only in draft form at the time of publication of the second edition and has evolved somewhat.
  • The descriptions of functions and the examples have all been updated to reflect the most recent POSIX specification (POSIX 1003.1-2001), also known as the Single Unix Specification Version 3.
  • The coverage of the X/Open Transport Interface (XTI) has been dropped. That API has fallen out of common use and even the most recent POSIX specification does not bother to cover it.
  • The coverage of TCP for transactions (T/TCP) has been dropped.
  • Three chapters have been added to describe a relatively new transport protocol, SCTP. This reliable, message-oriented protocol provides multiple streams between endpoints and transport-level support for multihoming. It was originally designed for transport of telephony signaling across the Internet, but provides some features that many applications could take advantage of.
  • A chapter has been added on key management sockets, which may be used with Internet Protocol Security (IPsec) and other network security services.
  • The machines used, as well as the versions of their variants of Unix, have all been updated, and the examples have been updated to reflect how these machines behave. In many cases, examples were updated because OS vendors fixed bugs or added features, but as one might expect, we've discovered the occasional new bug here and there. The machines used for testing the examples in this book were:
  • Apple Power PC running MacOS/X 10.2.6
  • HP PA-RISC running HP-UX 11i
  • IBM Power PC running AIX 5.1
  • Intel x86 running FreeBSD 4.8
  • Intel x86 running Linux 2.4.7
  • Sun SPARC running FreeBSD 5.1
  • Sun SPARC running Solaris 9
See Figure 1.16 for details on how these machines were used.

Volume 2 of this UNIX Network Programming series, subtitled Interprocess Communications,builds on the material presented here to cover message passing, synchronization,shared memory, and remote procedure calls.

Using This BookThis text can be used as either a tutorial on network programming or as a reference forexperienced programmers. When used as a tutorial or for an introductory class on networkprogramming, the emphasis should be on Part 2, ''Elementary Sockets'' (Chapters3 through 11), followed by whatever additional topics are of interest. Part 2 covers thebasic socket functions for both TCP and UDP, along with SCTP, I/O multiplexing,socket options, and basic name and address conversions. Chapter 1 should be read byall readers, especially Section 1.4, which describes some wrapper functions usedthroughout the text. Chapter 2 and perhaps Appendix A should be referred to as necessary,depending on the reader 's background. Most of the chapters in Part 3, ''AdvancedSockets,'' can be read independently of the others in that part of the book.

To aid in the use of this book as a reference, a thorough index is provided, alongwith summaries on the end papers of where to find detailed descriptions of all the functionsand structures. To help those reading topics in a random order, numerous referencesto related topics are provided throughout the text.The best way to learn network programming is to take these programs,modify them, and enhance them. Actually writing code of this form is the onlyway to reinforce the concepts and techniques. Numerous exercises are also provided atthe end of each chapter, and most answers are provided in Appendix E.

A current errata for the book is also available from the same Web site.

The authors welcome electronic mail from any readers with comments, suggestions,or bug fixes.

Bill Fenner

Woodside, California

Andrew M. Rudoff

Boulder, Colorado

October 2003

authors@unpbook.

Suggested Tags from Similar Products

 (What's this?)
Be the first one to add a relevant tag (keyword that's strongly related to this product)
 

Your tags: Add your first tag
 

What Other Items Do Customers Buy After Viewing This Item?


 

Customer Reviews

11 Reviews
5 star:
 (9)
4 star:
 (2)
3 star:    (0)
2 star:    (0)
1 star:    (0)
 
 
 
 
 
Average Customer Review
4.8 out of 5 stars (11 customer reviews)
 
 
 
 
Share your thoughts with other customers:
Most helpful customer reviews

2 of 2 people found the following review helpful:
5.0 out of 5 stars a great book, especially for Unix/networking developers, Nov 25 2003
By 
Marc Chatel (Montreal, Canada) - See all my reviews
This review is from: Unix Network Programming, Volume 1: The Sockets Networking API (Hardcover)
The book is incredible. I am still a proud owner of
the original version (the one with a plain white
cover with blue lettering), but this new version
beats everything.

Chapter 12 (IPv4 and IPv6 interoperability) is extremely
valuable to slightly older developers like me that have
a fair bit of IPv4 socket programming experience but that
have not had time to plunge seriously into IPv6 socket
programming. Appendix A manages to give a fairly thorough
introduction to both IPv4 and IPv6 in less than 20 pages.
This will be very popular in universities.

The book also continues to be a living history of UNIX,
where many given API calls are not only defined and explained,
but documented as to how the API call came into being, how
many different versions of the function existed, why it got
changed and when, along with recommended do's and dont's...

All around, a must buy for developers and even
non-developers who want to understand a bit of the
the true nature of the 'plumbing' that underlies
the Internet.

Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


1 of 1 people found the following review helpful:
5.0 out of 5 stars A great teacher; an essential reference, April 6 2004
By 
elwin "elwin" (Cambridge, MA USA) - See all my reviews
This review is from: Unix Network Programming, Volume 1: The Sockets Networking API (Hardcover)
I learned both network programming and threaded programming (pthreads) from this book (the 1998 2nd edition), and it was a great teacher. I used it to design and implement a client server protocol for a research project involving 10 machines and about 15 communicating processes. One of the things I really appreciate about the book is the detailed examples.

After the concepts (a server 'listens' for a connection; a client initiates a connection) and basics of packets and sockets, the book presents a simple tcp server and client -- the server simply echos back whatever the client sends. Next, it discusses what can go wrong with the simple version, and presents an improved echo server that behave better when the client crashes (and likewise an improved client).

The book continues to improve on the basic client/server, including address resolution, and servers that handle multiple clients using forks, threads, non-blocking I/O. This is all I needed to learn from the book, and it's all in the first half of the book.

Particularly useful is Chapter 27, Client-Server Design Alternatives. To me it alone was worth the price of the book. Here the book discusses concurrent servers with three basic architectures:

(1) non-blocking I/O, no threads or forks (advantage: full control of resource allocation; disadvantag: complexity);

(2) spawn a thread or fork for each client (simplest implementation; potential problem of too many children);

(3) servers that pre-allocate a pool of threads or forks (a happy medium; faster).

Other chapters discuss broadcasting, multicasting, out of band data, routing sockets, and raw sockets; all topics I hope to learn some day. Again, this is a great book. The 3rd edition brings it up to date for IPV6 and numerous small improvements.

Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


1 of 1 people found the following review helpful:
5.0 out of 5 stars Continuing the work of a legend in the field of CS, Feb 6 2004
By 
ART SEDIGHI (Old Bethpage, NY United States) - See all my reviews
This review is from: Unix Network Programming, Volume 1: The Sockets Networking API (Hardcover)
It would be difficult to put value on a book that has been a classic text and a reference in academia and in the real world in the context of Network Programming for over a decade. Richard Stevens published the ever-popular Unix Network Programming [UNP] back in 1990, followed the second edition in 1998. With a dedication to the memory of R. Stevens, the UNP book found itself two new authors, Bill Fenner and Andrew M. Rudoff, who would write the third edition of this book. The third edition has many updates, a new look and feel and many of new chapters that cover the topics more applicable these days. In my opinion, it is still the most valuable and profound text in the context of Network Programming.

For those of us who have the first two editions of this book, the third edition has the following changes in effect:
· IPv6 updates. In the second version of the book, IPv6 was merely a draft and the sections covering IPv6 has been updated to take these changes into effect.

· POSIX updates. The functions/APIs and examples have been updated to reflect the changes to the latest version of the POSIX specification (1003.1-2001)
· SCTP coverage. 3 new chapters that cover this new reliable, message-based transport protocol have been added.
· Key Management Sockets coverage. Network security and its applicability and use with IPsec.
· Updated Operating Systems and machines that are used to run the examples in the book.
· Some topics such as Transaction TCP and X/Open Transport Interface have been dropped.

Many topics and sections have been updated with the authors' comments. These comments even though simple for someone new to the profession, are extremely useful as they are like hints and tips from one developer to the next to help you out in your next programming assignment.

If this is the only edition of the book that you are reading, you are in for a treat. Topics in Network Programming are covered in detail and using concrete programming examples that all of us can relate to - all Unix, but what else is there?! All kidding aside, the topics are covered well enough that they are useful information under any Operating System. The concepts don't change; sockets are sockets under any Operating System. The function call is different, but one needs to go thru the same steps under any environment.

Being the most popular networking protocol, TCP/IP is covered in Part I of the book. One needs to have prior understanding of the TCP/IP protocol and the OSI model, however. If this is the first time you are looking at the programming aspects of networking protocols, Part I of this book will cover the basics. It starts you off with a couple of simple examples such as daytime client and a daytime server and it builds on that as the reader reads along. TCP, UDP and SCTP (Stream Control Transmission Protocol) are covered in brief in Part I, and basic concepts such as the three-way handshake of TCP and the four-way handshake of SCTP are depicted.

Part II of the book covers sockets and socket programming. Topics such as the socket Address Structure in IPv4 and IPv6 for TCP, UDP and SCTP are covered and examples (the same daytime client/server) are given to convey the point to the reader. It is important to mention here that all the topics and concepts are depicted for the three transport protocols: TCP, UDP and SCTP. Every single socket API under the Unix programming environment is covered and examples are given for each function call to show the reader how the function can be utilized. An entire chapter has been dedicated to Socket Options and how they are used/can be used for best results. Hints are given throughout the chapter to tell the user about the pitfalls and best practices of each option.

After the basics have been covered, various I/O models are depicted in detail and examples are shown to convey the pro's and con's of each I/O model. The five I/O models used thru the book and available under the Unix environment are:
· Blocking I/O
· Non-blocking I/O
· I/O Multiplexing (using select and poll)
· Signal driven I/O
· Asynchronous I/O

SCTP - Stream Control Transmission Protocol, a new IEFT standard are covered in later chapters of 9 and 10 and again in chapter 23. The two interface models of SCTP (one-to-one and one-to-many) are covered in detail, and their differences with TCP are also explained in full. The client/server example that has been used throughout the book is ported to use the new SCTP protocol. The authors then go into great detail explaining the problems that SCTP solves over TCP and where and how it would be useful to use SCTP.

Advanced topics such as IPv4 and IPv6 portability, Unix Domain Protocols, Multicasting and advanced Socket programming for UDP, TCP and SCTP cover the rest of the chapters in this book.
Various options for interoperability between IPv4 and IPv6 start off the last section of the book. A chapter on Advanced I/O functions brings the reader a new perspective of how complicated Network Programming can become. Non-blocking I/O, befits and examples are covered in chapter 16. The topics on Multicasting, and adding reliability to UDP are probably my favorite chapters in this book. The Time Server that has been used throughout the book is re-coded to become a multicast application. Some issues that arise when designing multicast applications such as multicast on a WAN are also discussed.
The third edition of the UNP book is as good as ever. The updates truly reflect solutions to today's challenges in Network Programming. Bill Fenner and Andrew Rudoff did an amazing job continuing the work a true legend in the field of Computer Science.

Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No

Share your thoughts with other customers: Create your own review
Want to see more reviews on this item?
 Go to Amazon.com to see all 28 reviews  4.9 out of 5 stars 
 
 
Most recent customer reviews









Only search this product's reviews



Listmania!


Look for similar items by category


Look for similar items by subject


Feedback


Amazon.ca Privacy Statement Amazon.ca Shipping Information Amazon.ca Returns & Exchanges