18. Межпроцессное взаимодействие и работа с сетью¶Interprocess Communication and Networking
Модули, описанные в этой главе, предоставляют механизмы для взаимодействия разных процессов.
Некоторые модули работают только с двумя процессами, находящимися на одной машине, например:
signal и mmap. Другие модули поддерживают сетевые протоколы,
которые могут использоваться двумя или более процессами для взаимодействия между машинами.
Список модулей, описанных в этой главе:
- 18.1.
socket– Низкоуровневый сетевой интерфейсsocket – Low-level networking interface - 18.2.
ssl– Обёртка TLS/SSL для объектов сокетовssl – TLS/SSL wrapper for socket objects- 18.2.1. Функции, константы и исключенияFunctions, Constants, and Exceptions
- 18.2.2. SSL-сокетыSSL Sockets
- 18.2.3. SSL-контекстыSSL Contexts
- 18.2.4. СертификатыCertificates
- 18.2.5. ПримерыExamples
- 18.2.6. Замечания о неблокирующих сокетахNotes on non-blocking sockets
- 18.2.7. Поддержка Memory BIOMemory BIO Support
- 18.2.8. SSL-сессияSSL session
- 18.2.9. Вопросы безопасностиSecurity considerations
- 18.2.10. Поддержка LibreSSLLibreSSL support
- 18.3.
select– Ожидание завершения ввода-выводаselect – Waiting for I/O completion - 18.4.
selectors– Высокоуровневый мультиплексирование ввода-выводаselectors – High-level I/O multiplexing - 18.5.
asyncio– Асинхронный ввод-вывод, цикл событий, корутины и задачиasyncio – Asynchronous I/O, event loop, coroutines and tasks- 18.5.1. Базовый цикл событийBase Event Loop
- 18.5.1.1. Запуск цикла событийRun an event loop
- 18.5.1.2. ВызовыCalls
- 18.5.1.3. Отложенные вызовыDelayed calls
- 18.5.1.4. FutureFutures
- 18.5.1.5. ЗадачиTasks
- 18.5.1.6. Создание подключенийCreating connections
- 18.5.1.7. Создание прослушивающих подключенийCreating listening connections
- 18.5.1.8. Наблюдение за файловыми дескрипторамиWatch file descriptors
- 18.5.1.9. Низкоуровневые операции с сокетамиLow-level socket operations
- 18.5.1.10. Разрешение имени хостаResolve host name
- 18.5.1.11. Подключение каналовConnect pipes
- 18.5.1.12. Сигналы UNIXUNIX signals
- 18.5.1.13. ИсполнительExecutor
- 18.5.1.14. API обработки ошибокError Handling API
- 18.5.1.15. Режим отладкиDebug mode
- 18.5.1.16. СерверServer
- 18.5.1.17. Handle
- 18.5.1.18. Примеры циклов событийEvent loop examples
- 18.5.1.18.1. Hello World с call_soon()Hello World with call_soon()
- 18.5.1.18.2. Отображение текущей даты с call_later()Display the current date with call_later()
- 18.5.1.18.3. Наблюдение за файловым дескриптором на события чтенияWatch a file descriptor for read events
- 18.5.1.18.4. Установка обработчиков сигналов SIGINT и SIGTERMSet signal handlers for SIGINT and SIGTERM
- 18.5.2. Циклы событийEvent loops
- 18.5.2.1. Функции цикла событийEvent loop functions
- 18.5.2.2. Доступные циклы событийAvailable event loops
- 18.5.2.3. Поддержка платформPlatform support
- 18.5.2.4. Политики цикла событий и политика по умолчаниюEvent loop policies and the default policy
- 18.5.2.5. Интерфейс политики цикла событийEvent loop policy interface
- 18.5.2.6. Доступ к глобальной политике цикла событийAccess to the global loop policy
- 18.5.2.7. Настройка политики цикла событийCustomizing the event loop policy
- 18.5.3. Задачи и корутиныTasks and coroutines
- 18.5.4. Транспорты и протоколы (API на основе колбэков)Transports and protocols (callback based API)
- 18.5.4.1. ТранспортыTransports
- 18.5.4.2. ПротоколыProtocols
- 18.5.4.2.1. Классы протоколовProtocol classes
- 18.5.4.2.2. Колбэки соединенияConnection callbacks
- 18.5.4.2.3. Потоковые протоколыStreaming protocols
- 18.5.4.2.4. Протоколы датаграммDatagram protocols
- 18.5.4.2.5. Колбэки управления потокомFlow control callbacks
- 18.5.4.2.6. Корутины и протоколыCoroutines and protocols
- 18.5.4.3. Примеры протоколовProtocol examples
- 18.5.4.3.1. Протокол TCP-эхо-клиентаTCP echo client protocol
- 18.5.4.3.2. Протокол TCP-эхо-сервераTCP echo server protocol
- 18.5.4.3.3. Протокол UDP-эхо-клиентаUDP echo client protocol
- 18.5.4.3.4. Протокол UDP-эхо-сервераUDP echo server protocol
- 18.5.4.3.5. Регистрация открытого сокета для ожидания данных через протоколRegister an open socket to wait for data using a protocol
- 18.5.5. Потоки данных (API на корутинах)Streams (coroutine based API)
- 18.5.5.1. Функции потоков данныхStream functions
- 18.5.5.2. StreamReader
- 18.5.5.3. StreamWriter
- 18.5.5.4. StreamReaderProtocol
- 18.5.5.5. IncompleteReadError
- 18.5.5.6. LimitOverrunError
- 18.5.5.7. Примеры с потоками данныхStream examples
- 18.5.5.7.1. TCP-эхо-клиент с использованием потоков данныхTCP echo client using streams
- 18.5.5.7.2. TCP-эхо-сервер с использованием потоков данныхTCP echo server using streams
- 18.5.5.7.3. Получение HTTP-заголовковGet HTTP headers
- 18.5.5.7.4. Регистрация открытого сокета для ожидания данных через потоки данныхRegister an open socket to wait for data using streams
- 18.5.6. ПодпроцессыSubprocess
- 18.5.6.1. Цикл событий WindowsWindows event loop
- 18.5.6.2. Создание подпроцесса: высокоуровневый API с использованием процессаCreate a subprocess: high-level API using Process
- 18.5.6.3. Создание подпроцесса: низкоуровневый API с использованием subprocess.PopenCreate a subprocess: low-level API using subprocess.Popen
- 18.5.6.4. КонстантыConstants
- 18.5.6.5. ПроцессProcess
- 18.5.6.6. Подпроцессы и потокиSubprocess and threads
- 18.5.6.7. Примеры с подпроцессамиSubprocess examples
- 18.5.7. Примитивы синхронизацииSynchronization primitives
- 18.5.8. ОчередиQueues
- 18.5.9. Разработка с asyncioDevelop with asyncio
- 18.5.9.1. Режим отладки asyncioDebug mode of asyncio
- 18.5.9.2. ОтменаCancellation
- 18.5.9.3. Конкурентность и многопоточностьConcurrency and multithreading
- 18.5.9.4. Корректная обработка блокирующих функцийHandle blocking functions correctly
- 18.5.9.5. ЛогированиеLogging
- 18.5.9.6. Обнаружение объектов корутин, которые никогда не были запланированыDetect coroutine objects never scheduled
- 18.5.9.7. Обнаружение необработанных исключенийDetect exceptions never consumed
- 18.5.9.8. Правильное связывание корутинChain coroutines correctly
- 18.5.9.9. Уничтожение ожидающих задачPending task destroyed
- 18.5.9.10. Закрытие транспортов и циклов событийClose transports and event loops
- 18.5.1. Базовый цикл событийBase Event Loop
- 18.6.
asyncore– Асинхронный обработчик сокетовasyncore – Asynchronous socket handler - 18.7.
asynchat– Асинхронный обработчик команд/ответов через сокетыasynchat – Asynchronous socket command/response handler - 18.8.
signal– Установка обработчиков для асинхронных событийsignal – Set handlers for asynchronous events - 18.9.
mmap– Поддержка файлов, отображаемых в памятьmmap – Memory-mapped file support