HackerTube.live
Books / Systems

THE READING ROOM / BOOK GUIDE

Unix Network Programming

W. Richard Stevens; Bill Fenner; Andrew M. Rudoff; Richard W. Stevens

A working guide to sockets, protocols, and the system calls beneath networked programs, written for programmers who need to understand what happens when one process talks to another across a Unix machine or a network.

About the book

W. Richard Stevens built this book around the practical mechanics of network programming on Unix systems. Its territory is the interface between application code and the operating system: sockets, addresses, name resolution, and the calls that move data between processes. Later editions, prepared with Bill Fenner and Andrew M. Rudoff, extend the material toward the protocols and APIs that modern networked software relies on.

The emphasis falls on explanation rather than reference alone. Stevens walks through system calls and protocol behavior with small programs, showing how a call behaves, what it returns, and where the underlying machinery matters. The subject is broad: local interprocess communication, Internet protocols, and the design decisions that separate a program that works on one machine from one that survives a real network.

This is a systems text, not a tutorial on building a particular application. The book treats the operating system as the thing being programmed against, and it assumes the reader can follow C code and reason about file descriptors, buffers, and process boundaries.

How to read it

Approach the book with a terminal nearby. The material rewards typing out the examples and watching what the system does, especially around socket setup, address handling, and error returns. Skim nothing that concerns byte order, partial reads, or connection state; those details carry most of the practical weight.

The prose is dense but orderly. Stevens moves from one concept to the next with few detours, so a chapter read in one sitting tends to hold together better than fragments sampled at random. Readers new to network programming should allow time for the early chapters on sockets before pushing into protocol-specific material.

Who it suits

Programmers who write or maintain networked software on Unix-like systems will find the most here, particularly those who have used sockets without understanding the calls beneath them. Systems administrators and students in operating systems courses also benefit, because the book connects API behavior to kernel-level concepts. Anyone comfortable with C and curious about how processes communicate will get a durable foundation.

Reading considerations

The work dates from an era when IPv4 dominated and some APIs have since been superseded or extended. Check which edition you have, since the later ones add material and revise earlier coverage. Treat specific implementation details as a starting point for testing against your own system rather than as current documentation.

Follow the HN conversation

54 different recommenders are recorded in the upstream dataset. These are AI-classified source counts, not an independent rating.

Search HN comments about this book ↗

Explore videos on the same subject ↗

Book notes prepared with DeepSeek, using catalogue records and Open Library subject information. They are reading guidance, not a personal review or a verified chapter-by-chapter account. Book details can vary by edition. HN data methodology · Book metadata and covers.