
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

    * Exceptions

    * Constants

    * Functions

      * Creating sockets

      * Other functions

  * 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

    * Multi-processing

* "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
