Pocket Guide to TCP/IP Socket Programming in C (Morgan Kaufmann Series in Networking)
The explosive growth of the Internet in no small part is due to the  sockets programming interface. This elegant API allows almost any computer that  runs TCP/IP--from palm computers to mainframes--to communicate seamlessly.The Pocket Guide to TCP/IP Socketsprovides beginning and intermediate  network programmers with a practical tutorial and reference guide. Instead of  trying to break new ground, this book establishes modest goals and achieves them  splendidly. It is a concise, high-quality resource for students and  professionals.This book targets the accomplished C programmer who wants to learn network  programming. You're assumed to have a good working knowledge of basic IP  addressing and network configuration--not much time is spent educating you on  the fundamentals of networking architecture.A highlight of this book is the solid sample code. Even for those who already  write socket code, a brief refresher is always helpful--this book delivers  valuable client and server code for both TCP and UDP sockets. Although the  samples are based on a Unix environment, it's a trivial matter to port most of  the code to Microsoft Windows and the Windows Sockets interface (ported samples  also are available directly from the book's Web site). No longer do you have to  paw through a thick reference to find parameter lists for sendto() or accept().  More subtle issues--data alignment, network vs. host byte order, and differing  approaches to handling client connections--also are handled with ease.Chapter 6 contains an under-the-hood discussion on TCP/IP implementation that  will be useful to the more advanced user and that explains possible deadlock  conditions, discusses the TCP state diagram, and sheds light on how the  operating system handles socket resources. These juicy nuggets are reasons  enough to keep this book handy--even after the thrill of your first successful  network program subsides.--Pete Ostenson