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. Вопросы безопасностиSecurity considerations
- 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. ЗадачиTasks
- 18.5.1.5. Создание подключенийCreating connections
- 18.5.1.6. Создание прослушивающих подключенийCreating listening connections
- 18.5.1.7. Отслеживание файловых дескрипторовWatch file descriptors
- 18.5.1.8. Низкоуровневые операции с сокетамиLow-level socket operations
- 18.5.1.9. Разрешение имени хостаResolve host name
- 18.5.1.10. Подключение каналовConnect pipes
- 18.5.1.11. Сигналы UNIXUNIX signals
- 18.5.1.12. ИсполнительExecutor
- 18.5.1.13. API обработки ошибокError Handling API
- 18.5.1.14. Режим отладкиDebug mode
- 18.5.1.15. СерверServer
- 18.5.1.16. Handle
- 18.5.1.17. Примеры работы с циклом событийEvent loop examples
- 18.5.1.17.1. Hello World с помощью call_soon()Hello World with call_soon()
- 18.5.1.17.2. Отображение текущей даты с помощью call_later()Display the current date with call_later()
- 18.5.1.17.3. Отслеживание файлового дескриптора на события чтенияWatch a file descriptor for read events
- 18.5.1.17.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.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. Примеры работы с потокамиStream examples
- 18.5.5.6.1. TCP-эхо-клиент с использованием потоковTCP echo client using streams
- 18.5.5.6.2. TCP-эхо-сервер с использованием потоковTCP echo server using streams
- 18.5.5.6.3. Получение HTTP-заголовковGet HTTP headers
- 18.5.5.6.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