About This Book
- Leverage your Python programming skills to build powerful network applications
- Explore steps to interact with a wide range of network services
- Design multithreaded and event-driven architectures for echo and chat servers
If you're a Python developer or a system administrator with Python experience and you're looking to take your first steps in network programming, then this book is for you. Basic knowledge of Python is assumed.
What You Will Learn
- Develop an understanding of network stacks and the power of encapsulation
- Design high-performance network server applications
- Implement socket-based network applications using asynchronous models
- Build client applications for major web APIs, including Amazon S3 and Twitter
- Interact with e-mail servers using SMTP, POP3, and IMAP protocols
- Deal with remote network servers using SSH, FTP, SNMP, SMB/CIFS, and LDAP protocols
- Work with IP addresses including Geo-IP lookups
- Download objects from the Web and craft custom HTTP requests with urllib and the Requests library
Network programming has always been a demanding task. With full-featured and well documented libraries all the way up the stack, Python makes network programming the enjoyable experience it should be.
Starting with a walkthrough of today's major networking protocols, with this book you'll learn how to employ Python for network programming, how to request and retrieve web resources, and how to extract data in major formats over the Web. You'll utilize Python for e-mailing using different protocols and you'll interact with remote systems and IP and DNS networking.
As the book progresses, socket programming will be covered, followed by how to design servers and the pros and cons of multithreaded and event-driven architectures. You'll develop practical client-side applications, including web API clients, e-mail clients, SSH, and FTP. These applications will also be implemented through existing web application frameworks.