Eugene's Site
FAQ: Resources
This section contains various online and offline resources that are useful for network programming and programming in general.

API Documentation

Don't trust Win32 API documentation that came with your compiler (especially if it is something as old as VC6). Make sure you use one or more of the following
MSDN Library Online
Most updated resource but somewhat slow and the search is awful (hint: use Google to search it instead of its own search)
Local MSDN Library (available through MSDN subscription)
If you are serious about programming on Windows you must have MSDN subscription. Make sure your employer buys it (preferably at least the Professional edition). The money will be well spent, believe me. ;-) The advantage of local library over the online one is speed, better search, ability to define your custom filters and integration with Visual Studio (you will be able to get immediate help on any API you are using or compiler error just by clicking F1)
Platform SDK
The SDK contains the most updated headers and libraries for each Windows platform. You have to install and use it instead of the headers and libraries that came with your compiler to get access to the most updated functionality. If you don't have MSDN (and I urge you to get it ASAP) the SDK comes with its subset that contains API documentation. It is free and there is no reason not to use it. One word of caution though. If you work in organization with multiple developers make sure that everybody uses the same version of SDK (and the same service pack of the compiler too). It seems strange to even mention such basic thing here but I have seen too many shops where each developer was using whatever he wanted and only god knew what went into the final build.
DDK
The Driver Development Kit is essentially an SDK for driver development. However it also contains headers and libraries that may be of interest to user-mode developer especially in areas of device management and installation. Once upon a time DDK was freely available but now you must either pay for it or get it through MSDN subscription (one more reason to get it). Note that DDK headers are generally incompatible with "normal" SDK ones, because they tend to define and declare many common types and macros. There are ways around this which I may write about some time.
Back to top

Online resources

These are good online places to find information you need
Google and Google Groups searches
It may seem trivial but many people don't realize how much information is just lying there around the corner. Whenever you have a problem most likely somebody else already encountered it, asked on the web and got an answer. The second link above (to the Google USENET archive) seems to be especially unknown. Yet, despite the abundance of forums, blogs and other fads USENET remains the best archive of technical information for programmers. Make sure you use it!
Winsock FAQ
An excellent source of Winsock and network programming information.
MVP VC++ FAQ
An excellent source of VC related information.
NDIS FAQ
Everything you wanted to know about kernel-mode networking
Sysinternals
An amazing collection of utilities (some with source) and information.
Back to top

Books

Below are the list of books I've read and can recommend. I am aware that there are few other books devoted to sockets or Windows network programming but I have no information on their quality. 
Network Programming for Microsoft Windows by Anthony Jones, Jim Ohlund (Amazon, B&N)
A very good book that provides good introduction into networking technologies available in Win32. Note that there is another edition available that speaks about .NET. Don't confuse between the two. I have no idea whether .NET book is any good and don't intend to find out.
Programming Server-Side Applications for Microsoft Windows 2000 by Jeffrey Richter, Jason D. Clark (Amazon, B&N)
A great introduction to everything server-side. Don't be mislead by 2000 in the book title. It applies equally well to XP and Win2k3 (and probably to Longhorn)
Microsoft Windows Internals, Fourth Edition: Microsoft Windows Server(TM) 2003, Windows XP, and Windows 2000 (Amazon, B&N, Bookpool)
I have an older edition of this book but this one should be even better. This book is a must if you want to understand how Windows really works inside. It contains very little programming but is indispensable if you are serious about Windows programming.
The Protocols (TCP/IP Illustrated, Volume 1) by W. Richard Stevens (Amazon, B&N, Bookpool)
A great book that describes inner workings of TCP/IP. Don't be frightened by its date of issue or Unix focus. TCP/IP is the same even on VMS and this book contains tons of information useful for Windows programmer.
Interconnections: Bridges, Routers, Switches, and Internetworking Protocols (2nd Edition) by Radia Perlman (Amazon, B&N, Bookpool)
Ever wondered what all these routers, switches, hubs etc. do and what to expect from them as you write your application? Then this book is for you
Programming Windows Security by Keith Brown (Amazon, B&N, Bookpool)
This book is a must read if you program on Windows and especially so if you deal with networking. Seriously. There is no better resource that explains what to do about all these 'access denied' errors and why there is no such thing as logon to domain.
Back to top