on 19 March 2001
THIS volume is about networks in the sense of communicating processes - running mostly, though not exclusively, on the same machine.
If you want to know about using networks like TCP/IP, you need Volume 1.
If you want to know about using pipes, synchronisation etc. the examples and explanations are clear and well thought out. If you don't need quite the same depth 'Advanced Programming in the Unix Environment' by the same author covers much of the same material
on 2 November 1998
Ok, I will admit to be biased. Stevens is a unix programming god. Or mine anyway.
However, I will dare say that again he has improved his previous good work. I felt that he improved and showed a lot more in his second edition of Volume I, and I felt the same way about volume II. While his was HARDLY the first serious book on thread programming that I have read (I also suggest programming with Posix Threads, if it interests you), his was very informative, from both a beginner and advanced standpoint. If you have only one author to buy, this is it.
on 1 July 1997
This is undoubtedly one of the finest computer books I have ever owned. It is readable enough to use as a textbook, but well-indexed and complete enough to use as a reference. I bought my copy in 1991, and it is almost falling apart. Colleagues are constantly borrowing it, and they usually go out and get their own copy (after I tell them that they may NOT take it home). When Advanced Programming in the Unix Environment came out, a co-worker and I both decided that we would, on faith, "plunk down the 50+ bucks to own it, too". It has also proven to be readable and useful. I took a week-long class in network programming shortly after I bought the Unix Network Programming book, and I took it along, thinking I might need it. The instructor saw the book, picked it up and said "This is THE definitive reference on network programming in Unix. Any problem I have had, I have been able to find a solution in this book!" (All of this was before Steven's series of 3 volumes came out).
Now, if you'll excuse me, I have to go arm-wrestle one of our student interns for my copy of Unix Network Programming...
on 2 June 1997
Complete and detailed book, with practical examples almost everywhere, and a particular emphasis is put on the TCP/IP internet protocol suite.
But not very nice editing and layout, and a bit confusing at some points.
Around the first 85 pages are dedicated to UNIX in general (signals, daemons, filesystem general structure), and not dedicated to networking.
But it talks about the UNIX techniques you will need in the rest of the book, so you won't really need any other and no assumptions about your networking knowledge are done.
The real book starts providing a detailed description of IPC techniques: pipes, FIFOs, streams, message queues, semaphores, shared memory. It might result confusing when to use each technique and how to combine them.
But each of them comes with comprehensive client-server examples and several file locking implementations that help to fully understand the text, and comparisions and valuable advices.
A few tables are outdated now.
But this is no problem as they are available in your UNIX kernel configuration or include files, and the book shows how to find the right values in each case.
A chapter is dedicated to explain networking terms and concepts (OSI models, byte ordering, buffering, multiplexing, routing..)
But even if it's more than enough to understand how everything presented in the book works, in my opinion its a bit short.
Several protocol suites are described (TCP/IP, XNS, SNA, NetBIOS, OSI, UUCP) so it might be hard to choose the right one for your application.
But the different characteristics and services they provide are compared making this choice easier.
Stevens makes a thorough description of the Berkeley Socket Interface and the System V TLI communication protocol APIs, providing examples and useful routines like the implementation of a reliable UDP/IDP protocol that is later used in some of the project examples in the last part of the book (tftp, lpd, rmt, rlogind, ...), each of them explained in detail.
But for some people this might be too much C source code (around 15000 lines, claims the author), and not enough real life problems or advices. A matter of taste.
There is a part dedicated to security, which explains the Kerberos authentication system and the standard .rhosts, which is applied to the rlogind example.
But the Kerberos chapter along with the one dedicated to the Apollo, Xerox Courier and Sun RPCs, even if they provide enough descriptions and examples, seem to be a bit too short.
In general, I'd say it's a complete book about network programming under UNIX which provides in-depth explanations of the main communication protocols and techniques. And since communication is often a must under UNIX, a very useful book to have near your keyboard.
No buts here, get it :)
on 14 October 1995
This book is a must have for any one starting to do Unix
network programming. It is also a good reference for
the Unix programmer doing network programming.
Expect to find complete discussions and examples of Unix
code for Sockets, RPC. Inter-process communications (IPC)
are discussed in detail. Coding at the transport layer,
both Sockets and TLI are discussed with an emphesis towards
Sockets. Expect to find a complete discussion on network
devices as well, pseudo-tty devices and applications that
use them (rlogin, telnet, etc...)
on 5 January 2001
Most of the reviews here seem to imply this book is about sockets and TCP/IP. This book covers Unix IPC and describes the subject in detail. If you want to know all about sockets, you want Unix Network Programming, Networking APIs Sockets and XTI, which is Volume 1