Winsock Programmer's FAQ
Section 8: Reviews: Network Programming for Microsoft Windows

cover image

Network Programming for Microsoft Windows

by Anthony Jones and Jim Ohlund
Microsoft Press, August 1999
675 pp.
ISBN 0-7356-0560-2
$49.99 list, $39.99 at (click to purchase)

Book reviewed 4/22/2000

Oh how boring, yet another excellent reference book from Microsoft Press. They're making fine publishing into a habit. :)

This book is a lot like other classics from Microsoft Press: nearly complete coverage of a Microsoft technology written by true experts. (In this book's case, two of Microsoft's network developer support engineers. They are now design engineers at Microsoft, presumably working on Winsock and related things.)

The book is also a lot like Ralph Davis' Win32 Network Programming: it covers a lot more than Winsock, straying into legacy APIs like NetBIOS and named pipes. Unlike Davis' book, though, the book assumes that you have a grasp of Win32 API basics like threads and security. This is because Microsoft Press already has a Win32 API reference: Jeffrey Richter's Programming Applications for Microsoft Windows.

The Winsock Coverage

In place of the Win32 basics in Davis' similarly-sized book, Jones and Ohlund go into much more depth in the Winsock sections. They take eight chapters to cover Winsock, totalling some 350 pages. (There are nine Winsock chapters if you count the 30-page chapter on the Visual Basic Winsock control.)

The first Winsock chapter describes Winsock from the API perspective. There is very little theoretical discussion: the chapter feels a bit like an expanded version of the MSDN docs, organized into a logical sequence.

The next chapter covers the various I/O models available to a Winsock programmer. In addition to the expected coverage of blocking sockets and nonblocking sockets with select(), WSAAsyncSelect(), WSAEventSelect() and overlapped I/O, this chapter also covers I/O completion ports, which to date have never been covered in book form. This chapter is more descriptive than prescriptive: it offers little advice on which I/O strategy you should choose.

The next several chapters cover set/getsockopt() and WSAIoctl() options, the Winsock 2 name lookup API, IP and ATM multicasting, and the various quality of service mechanisms. I did not read these chapters carefully, but they seem to be good material if you need information on these topics.

The last two Winsock chapters cover two more technologies that to date have seen very little authoritative coverage: raw sockets and the Winsock 2 service provider interface (SPI). The raw sockets chapter starts off with the obligatory "ping" sample and then goes into more interesting subjects like how to change network packet headers with the IP_HDRINCL socket option.

The Rest of the Book

It's kind of odd, but the first section of the book (about 110 pages) covers "Legacy APIs" (their term). These include NetBIOS, the redirector, named pipes and mailslots. This material should have been hidden at the back of the book in appendices, in my humble opinion. To most programmers, reading this material is like listening to old fart programmers talk about card decks and teletypes. It makes you feel better about the current state of programming.

Following the second section on Winsock, the book winds down with a final one-chapter section on the RAS API.

The remaining 75 pages are given to appendices. Tucked in among these is an appendix on the IP helper functions that appeared (variously) in Windows 98, Windows NT service pack 4, and Windows 2000. The helper functions encapsulate some truly useful functionality that used to be much harder to use. I think this is more deserving of a chapter in the main section of the book than, say, named pipes.

Yet Another Winsock Book. Should I Care?

This book's main claim for a place on your bookshelf is simple: it covers many topics that have never been covered in a book to date. The fact that it's from Microsoft Press also carries some weight as it makes clear where Microsoft's interests lie within the broad scope of Windows networking.

Assuming that you are an experienced Win32 programmer, this is probably the best get-started-quickly tutorial and reference book for Winsock on the market today. If you already have Winsock books but need a reference for advanced topics like I/O completion ports, this book will fill that need, too.

Related Resources

There are several reviews of this book at

Microsoft Press also has a page dedicated to this book.

<< Windows Sockets Network Programming book review Win32 Network Programming book review >>
Last modified on 19 October 2001 at 15:57 UTC-7 Please send corrections to
< Go to the main FAQ page << Go to the Home Page