Full book name: "Internetworking with TCP/IP, Volume III - Client-server programming and applications, Windows Sockets Version" The TCP/IP stack runs the internet and is certainly the most popular networking technology in the computing world these days. Networked and distributed code becomes more and more important, especially with the recent trend of distributing programs over several processors and computers to achieve higher computation speeds (well, the trend is not exactly recent, but after the single-code speed rise has slowed down significantly, multi-core paradigms at once became much more important). This book is a very practical introduction to distributed and networked programming, exploring the most popular programming paradigm for such code - client-server architectures. It introduces the basic concepts (sockets, threading, etc.) nicely, and then goes on to present various strategies of client and server design, and algorithms that are useful for coding such programs. Iterative servers, threaded servers, multi-process servers are all covered here, and the basic tradeoffs between them are well presented. Both TCP servers and UDP servers are presented, and the authors explain when it's best to use each, with several examples. The book contains quite a lot of code with sample programs for the Windows platform (but since the socket API is basically the same everywhere, the code is almost universal). In the end, several real-world programs are presented (the RPC protocol, NFS, TELNET) with complete code listings for implementing selected functions. Even though I was somewhat familiar with these topics from before, I learned some interesting things from this book. It's not overly formal and is very easy to read, covering the topics in a very methodical and complete manner. I liked how the tradeoffs between various approaches are presented and explored, and examples given of each approach. If you're doing any serious networked programming, being familiar with the topics presented in this book is important.


comments powered by Disqus