Foundations of Python Network Programming
The Comprehensive Guide to Building Network Applications with Python
Publisher: Apress, 2004 , 512 pages
ISBN: 1-59059-371-5
Synopsis:
- Toggle Synopsis
-
To guide readers through the new scripting language, Python, this book discusses every aspect of client and server programming. And as Python begins to replace Perl as a favorite programming language, this book will benefit scripters and serious application developers who want a feature-rich, yet simple language, for deploying their products.
The text explains multitasking network servers using several models, including forking, threading, and non-blocking sockets. Furthermore, the extensive examples demonstrate important concepts and practices, and provide a cadre of fully-functioning stand alone programs. Readers may even use the provided examples as building blocks to create their own software.
Table of Contents:
- Toggle Table of Contents
-
- Part I: Low-Level Networking
- Chapter 1: Introduction to Client/Server Networking
- Understanding TCP Basics
- Using the Client/Server Model
- Understanding User Datagram Protocol
- Understanding Physical Transports and Ethernet
- Networking in Python
- Summary
- Chapter 2: Network Clients
- Understanding Sockets
- Creating Sockets
- Communicating with Sockets
- Handling Errors
- Using User Datagram Protocol
- Summary
- Chapter 3: Network Servers
- Preparing for Connections
- Accepting Connections
- Handling Errors
- Using User Datagram Protocol
- Using inetd or xinetd
- Logging with syslog
- Avoiding Deadlock
- Summary
- Chapter 4: Domain Name System
- Making DNS Queries
- Using Operating System Lookup Services
- Using PyDNS for Advanced Lookups
- Summary
- Chapter 5: Advanced Network Operations
- Half-Open Sockets
- Timeouts
- Transmitting Strings
- Understanding Network Byte Order
- Using Broadcast Data
- Working with IPv6
- Binding to Specific Addresses
- Using Event Notification with poll () or select ()
- Summary
- Part II: Web Services
- Chapter 6: Web Client Access
- Fetching Web Pages
- Authenticating
- Submitting Form Data
- Handling Errors
- Using Non-HTTP Protocols
- Summary
- Chapter 7: Parsing HTML and XHTML
- Understanding Basic HTML Parsing
- Handling Real-World HTML
- A Working Example
- Summary
- Chapter 8: XML and XML-RPC
- Understanding XML Documents
- Using DOM
- Using XML-RPC
- Summary
- Part III: E-mail Services
- Chapter 9: E-Mail Composition and Decoding
- Understanding Traditional Messages
- Composing Traditional Messages
- Parsing Traditional Messages
- Understanding MIME
- Composing MIME Attachments
- Composing MIME Alternatives
- Composing Non-English Headers
- Composing Nested Multiparts
- Parsing MIME Messages
- Summary
- Chapter 10: Simple Message Transport Protocol
- Introducing the SMTP Library
- Error Handling and Conversation Debugging
- Getting Information from EHLO
- Using Secure Socket Layer and Transport Layer Security
- Authenticating
- SMTP Tips
- Summary
- Chapter 11: POP
- Connecting and Authenticating
- Obtaining Mailbox Information
- Downloading Messages
- Deleting Messages
- Summary
- Chapter 12: IMAP
- Understanding IMAP in Python
- Introducing IMAP in Twisted
- Understanding Twisted Basics
- Scanning the Folder List
- Examining Folders
- Basic Downloading
- Flagging and Deleting Messages
- Retrieving Message Parts
- Finding Messages
- Adding Messages
- Creating and Deleting Folders
- Moving Messages Between Folders
- Summary
- Part IV: General-Purpose Client Protocols
- Chapter 13: FTP
- Understanding FTP
- Using FTP in Python
- Downloading ASCII Files
- Downloading Binary Files
- Uploading Data
- Handling Errors
- Scanning Directories
- Downloading Recursively
- Manipulating Server Files and Directories
- Summary
- Chapter 14: Database Clients
- SQL and Networking
- SQL in Python
- Connecting
- Executing Commands
- Transactions
- Repeating Commands
- Retrieving Data
- Reading Metadata
- Using Data Types
- Summary
- Chapter 15: SSL
- Understanding Network Vulnerabilities
- Reducing Vulnerabilities with SSL
- Understanding SSL in Python
- Using Built-in SSL
- Using OpenSSL
- Verifying Server Certificates with OpenSSL
- Summary
- Part V: Server-Side Frameworks
- Chapter 16: SocketServer
- Using BaseHTTPServer
- SimpleHTTPServer
- CGIHTTPServer
- Implementing New Protocols
- IPv6
- Summary
- Chapter 17: SimpleXMLRPCServer
- SimpleXMLRPCServer Basics
- Serving Functions
- Exploiting Class Features
- Using DocXMLRPCServer
- Using CGIXMLRPCRequestHandler
- Supporting Multicall Functions
- Summary
- Chapter 18: CGI
- Setting Up CGI
- Understanding CGI
- Understanding CGI in Python
- Retrieving Environment Information
- Getting Input
- Escaping Special Characters
- Handling Multiple Inputs per Field
- Uploading Files
- Using Cookies
- Summary
- Chapter 19: mod_python
- Understanding the Need for mod_python
- Installing and Configuring mod_python
- Understanding mod_python Basics
- Dispatching Requests
- Handling Input
- Escaping
- Understanding Interpreter Instances
- Prebuilt Handlers in mod_python
- Summary
- Part VI: Multitasking
- Chapter 20: Forking
- Understanding Processes
- Understanding fork ()
- Forking First Steps
- Forking Servers
- Locking
- Error Handling
- Summary
- Chapter 21: Threading
- Threading in Python
- Writing Threaded Servers
- Writing Threaded Clients
- Summary
- Chapter 22: Asynchronous Communication
- Deciding Whether or Not to Use Asynchronous Communication
- Using Asynchronous Communication
- Advanced Server-Side Use
- Monitoring Multiple Master Sockets
- Using Twisted for Servers
- Summary
- Part I: Low-Level Networking
Reviews:
Foundations of Python Network Programming
Rating: ********* (Outstanding)
This is an excellent book about network programming. In fact, it is so good that I could even envisage creating a networking course around it! The only things preventing it from getting a straight ten, is the shallow coverage of Twisted (of course, it would probably make the book twice the size) and the pretty one-sided Linux/Unix coverage (it would have been nice to see some Windows and MacOS specifics added, as it is Python).
Anyway, you wont regret reading this book.
The Zope Book