Foundations of Python Network Programming - Brandon  Rhodes and John Goerzen