
Interprocess Communication and Networking
*****************************************

The modules described in this chapter provide mechanisms for different
processes to communicate.

Some modules only work for two processes that are on the same machine,
e.g. ``signal`` and ``mmap``.  Other modules support networking
protocols that two or more processes can used to communicate across
machines.

The list of modules described in this chapter is:

* ``socket`` --- Low-level networking interface
  * Socket families
  * Module contents
  * Socket Objects
  * Notes on socket timeouts
    * Timeouts and the ``connect`` method
    * Timeouts and the ``accept`` method
  * Example
* ``ssl`` --- TLS/SSL wrapper for socket objects
  * Functions, Constants, and Exceptions
    * Socket creation
    * Random generation
    * Certificate handling
    * Constants
  * SSL Sockets
  * SSL Contexts
  * Certificates
    * Certificate chains
    * CA certificates
    * Combined key and certificate
    * Self-signed certificates
  * Examples
    * Testing for SSL support
    * Client-side operation
    * Server-side operation
  * Notes on non-blocking sockets
  * Security considerations
    * Verifying certificates
    * Protocol versions
    * Cipher selection
* ``asyncore`` --- Asynchronous socket handler
  * asyncore Example basic HTTP client
  * asyncore Example basic echo server
* ``asynchat`` --- Asynchronous socket command/response handler
  * asynchat - Auxiliary Classes
  * asynchat Example
* ``signal`` --- Set handlers for asynchronous events
  * General rules
    * Execution of Python signal handlers
    * Signals and threads
  * Module contents
  * Example
* ``mmap`` --- Memory-mapped file support