John Goerzen: Foundations of Python Network Programming. APress, 1590593715, 512 pages.
Goerzen's Foundations of Python Network Programming looks at how to handle several common protocols, including HTTP, SMTP, and FTP. Goerzen doesn't delve as deeply into how servers work, concentrating instead on how to build clients that use these protocols. Throughout, Goerzen builds solutions to complex problems one step at a time, explaining each addition or modification along the way. He occasionally assumes more background knowledge than most readers of this book are likely to have, but only occasionally, and makes up for it by providing both clear code, and clear explanations of why this particular function has to do things in a particular order, or why that one really ought to be multithreaded. I've already folded down the corners of quite a few pages, and expect I'll refer to this book often in the coming months.