mirror of
https://github.com/fofolee/uTools-Manuals.git
synced 2025-06-08 23:14:06 +08:00
1 line
32 KiB
HTML
1 line
32 KiB
HTML
<div class="body" role="main"><div class="section" id="interprocess-communication-and-networking"><h1><span class="yiyi-st" id="yiyi-9">18. </span><span class="yiyi-st" id="yiyi-10">进程间通信和联网 </span></h1><p><span class="yiyi-st" id="yiyi-11">在这一章中描述的模块提供不同的进程进行通信的机制。</span></p><p><span class="yiyi-st" id="yiyi-12">某些模块只工作在同一台机器上的两个进程,例如</span><span class="yiyi-st" id="yiyi-13"><a class="reference internal" href="signal.html#module-signal" title="signal: Set handlers for asynchronous events."><code class="xref py py-mod docutils literal"><span class="pre">signal</span></code></a> 和 <a class="reference internal" href="mmap.html#module-mmap" title="mmap: Interface to memory-mapped files for Unix and Windows."><code class="xref py py-mod docutils literal"><span class="pre">mmap</span></code></a>.</span><span class="yiyi-st" id="yiyi-14">其他模块支持网络协议,两个或多个进程可用其进行跨机器通信。</span></p><p><span class="yiyi-st" id="yiyi-15">在这一章中描述的模块的列表是︰</span></p><div class="toctree-wrapper compound"><ul><li class="toctree-l1"><span class="yiyi-st" id="yiyi-28"><a class="reference internal" href="socket.html">18.1.<code class="docutils literal"><span class="pre">套接字</span></code> — 低级网络接口</a></span><ul><li class="toctree-l2"><span class="yiyi-st" id="yiyi-16"><a class="reference internal" href="socket.html#socket-families">18.1.1. Socket系列</a></span></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-22"><a class="reference internal" href="socket.html#module-contents">18.1.2.模块内容</a></span><ul><li class="toctree-l3"><span class="yiyi-st" id="yiyi-17"><a class="reference internal" href="socket.html#exceptions">18.1.2.1.例外</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-18"><a class="reference internal" href="socket.html#constants">18.1.2.2.常数</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-21"><a class="reference internal" href="socket.html#functions">18.1.2.3.函数</a></span><ul><li class="toctree-l4"><span class="yiyi-st" id="yiyi-19"><a class="reference internal" href="socket.html#creating-sockets">18.1.2.3.1.创建套接字</a></span></li><li class="toctree-l4"><span class="yiyi-st" id="yiyi-20"><a class="reference internal" href="socket.html#other-functions">18.1.2.3.2.其他功能</a></span></li></ul></li></ul></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-23"><a class="reference internal" href="socket.html#socket-objects">18.1.3.套接字对象</a></span></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-26"><a class="reference internal" href="socket.html#notes-on-socket-timeouts">18.1.4.套接字超时的注意事项</a></span><ul><li class="toctree-l3"><span class="yiyi-st" id="yiyi-24"><a class="reference internal" href="socket.html#timeouts-and-the-connect-method">18.1.4.1.超时和<code class="docutils literal"><span class="pre">connect</span></code>方法</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-25"><a class="reference internal" href="socket.html#timeouts-and-the-accept-method">18.1.4.2.超时和<code class="docutils literal"><span class="pre">accept</span></code>方法</a></span></li></ul></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-27"><a class="reference internal" href="socket.html#example">18.1.5.示例</a></span></li></ul></li><li class="toctree-l1"><span class="yiyi-st" id="yiyi-55"><a class="reference internal" href="ssl.html">18.2. <code class="docutils literal"><span class="pre">ssl</span></code> - 套接字对象的TLS / SSL包装器</a></span><ul><li class="toctree-l2"><span class="yiyi-st" id="yiyi-34"><a class="reference internal" href="ssl.html#functions-constants-and-exceptions">18.2.1.函数,常量和异常</a></span><ul><li class="toctree-l3"><span class="yiyi-st" id="yiyi-29"><a class="reference internal" href="ssl.html#socket-creation">18.2.1.1.套接字创建</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-30"><a class="reference internal" href="ssl.html#context-creation">18.2.1.2.上下文创建</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-31"><a class="reference internal" href="ssl.html#random-generation">18.2.1.3.随机生成</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-32"><a class="reference internal" href="ssl.html#certificate-handling">18.2.1.4.证书处理</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-33"><a class="reference internal" href="ssl.html#constants">18.2.1.5.常数</a></span></li></ul></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-35"><a class="reference internal" href="ssl.html#ssl-sockets">18.2.2. SSL套接字</a></span></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-36"><a class="reference internal" href="ssl.html#ssl-contexts">18.2.3. SSL上下文</a></span></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-41"><a class="reference internal" href="ssl.html#certificates">18.2.4.证书</a></span><ul><li class="toctree-l3"><span class="yiyi-st" id="yiyi-37"><a class="reference internal" href="ssl.html#certificate-chains">18.2.4.1.证书链</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-38"><a class="reference internal" href="ssl.html#ca-certificates">18.2.4.2. CA证书</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-39"><a class="reference internal" href="ssl.html#combined-key-and-certificate">18.2.4.3.组合键和证书</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-40"><a class="reference internal" href="ssl.html#self-signed-certificates">18.2.4.4.自签名证书</a></span></li></ul></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-45"><a class="reference internal" href="ssl.html#examples">18.2.5.示例</a></span><ul><li class="toctree-l3"><span class="yiyi-st" id="yiyi-42"><a class="reference internal" href="ssl.html#testing-for-ssl-support">18.2.5.1.测试SSL支持</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-43"><a class="reference internal" href="ssl.html#client-side-operation">18.2.5.2.客户端操作</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-44"><a class="reference internal" href="ssl.html#server-side-operation">18.2.5.3.服务器端操作</a></span></li></ul></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-46"><a class="reference internal" href="ssl.html#notes-on-non-blocking-sockets">18.2.6.非阻塞套接字注意事项</a></span></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-47"><a class="reference internal" href="ssl.html#memory-bio-support">18.2.7.内存BIO支持</a></span></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-54"><a class="reference internal" href="ssl.html#security-considerations">18.2.8.安全注意事项</a></span><ul><li class="toctree-l3"><span class="yiyi-st" id="yiyi-48"><a class="reference internal" href="ssl.html#best-defaults">18.2.8.1.最佳默认值</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-52"><a class="reference internal" href="ssl.html#manual-settings">18.2.8.2.手动设置</a></span><ul><li class="toctree-l4"><span class="yiyi-st" id="yiyi-49"><a class="reference internal" href="ssl.html#verifying-certificates">18.2.8.2.1.验证证书</a></span></li><li class="toctree-l4"><span class="yiyi-st" id="yiyi-50"><a class="reference internal" href="ssl.html#protocol-versions">18.2.8.2.2.协议版本</a></span></li><li class="toctree-l4"><span class="yiyi-st" id="yiyi-51"><a class="reference internal" href="ssl.html#cipher-selection">18.2.8.2.3.密码选择</a></span></li></ul></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-53"><a class="reference internal" href="ssl.html#multi-processing">18.2.8.3.多处理</a></span></li></ul></li></ul></li><li class="toctree-l1"><span class="yiyi-st" id="yiyi-61"><a class="reference internal" href="select.html">18.3. <code class="docutils literal"><span class="pre">select</span></code> - 等待I / O完成</a></span><ul><li class="toctree-l2"><span class="yiyi-st" id="yiyi-56"><a class="reference internal" href="select.html#dev-poll-polling-objects">18.3.1. <code class="docutils literal"><span class="pre">/dev/poll</span></code>轮询对象</a></span></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-57"><a class="reference internal" href="select.html#edge-and-level-trigger-polling-epoll-objects">18.3.2.边缘和级别触发器轮询(epoll)对象</a></span></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-58"><a class="reference internal" href="select.html#polling-objects">18.3.3.轮询对象</a></span></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-59"><a class="reference internal" href="select.html#kqueue-objects">18.3.4. Kqueue Objects</a></span></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-60"><a class="reference internal" href="select.html#kevent-objects">18.3.5. Kevent对象</a></span></li></ul></li><li class="toctree-l1"><span class="yiyi-st" id="yiyi-65"><a class="reference internal" href="selectors.html">18.4. <code class="docutils literal"><span class="pre">selectors</span></code> - 高级I / O复用</a></span><ul><li class="toctree-l2"><span class="yiyi-st" id="yiyi-62"><a class="reference internal" href="selectors.html#introduction">18.4.1.简介</a></span></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-63"><a class="reference internal" href="selectors.html#classes">18.4.2.类</a></span></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-64"><a class="reference internal" href="selectors.html#examples">18.4.3.示例</a></span></li></ul></li><li class="toctree-l1"><span class="yiyi-st" id="yiyi-177"><a class="reference internal" href="asyncio.html">18.5. <code class="docutils literal"><span class="pre">asyncio</span></code> - 异步I / O,事件循环,协程和任务</a></span><ul><li class="toctree-l2"><span class="yiyi-st" id="yiyi-88"><a class="reference internal" href="asyncio-eventloop.html">18.5.1.基本事件循环</a></span><ul><li class="toctree-l3"><span class="yiyi-st" id="yiyi-66"><a class="reference internal" href="asyncio-eventloop.html#run-an-event-loop">18.5.1.1.运行事件循环</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-67"><a class="reference internal" href="asyncio-eventloop.html#calls">18.5.1.2.通话</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-68"><a class="reference internal" href="asyncio-eventloop.html#delayed-calls">18.5.1.3.延迟呼叫</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-69"><a class="reference internal" href="asyncio-eventloop.html#futures">18.5.1.4.期货</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-70"><a class="reference internal" href="asyncio-eventloop.html#tasks">18.5.1.5.任务</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-71"><a class="reference internal" href="asyncio-eventloop.html#creating-connections">18.5.1.6.创建连接</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-72"><a class="reference internal" href="asyncio-eventloop.html#creating-listening-connections">18.5.1.7.创建侦听连接</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-73"><a class="reference internal" href="asyncio-eventloop.html#watch-file-descriptors">18.5.1.8.观看文件描述器</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-74"><a class="reference internal" href="asyncio-eventloop.html#low-level-socket-operations">18.5.1.9.低级套接字操作</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-75"><a class="reference internal" href="asyncio-eventloop.html#resolve-host-name">18.5.1.10.解析主机名</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-76"><a class="reference internal" href="asyncio-eventloop.html#connect-pipes">18.5.1.11.连接管道</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-77"><a class="reference internal" href="asyncio-eventloop.html#unix-signals">18.5.1.12. UNIX信号 0></a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-78"><a class="reference internal" href="asyncio-eventloop.html#executor">18.5.1.13.执行者</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-79"><a class="reference internal" href="asyncio-eventloop.html#error-handling-api">18.5.1.14.错误处理API</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-80"><a class="reference internal" href="asyncio-eventloop.html#debug-mode">18.5.1.15.调试模式</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-81"><a class="reference internal" href="asyncio-eventloop.html#server">18.5.1.16.服务器</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-82"><a class="reference internal" href="asyncio-eventloop.html#handle">18.5.1.17.处理</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-87"><a class="reference internal" href="asyncio-eventloop.html#event-loop-examples">18.5.1.18.事件循环示例</a></span><ul><li class="toctree-l4"><span class="yiyi-st" id="yiyi-83"><a class="reference internal" href="asyncio-eventloop.html#hello-world-with-call-soon">18.5.1.18.1. Hello World with call_soon()</a></span></li><li class="toctree-l4"><span class="yiyi-st" id="yiyi-84"><a class="reference internal" href="asyncio-eventloop.html#display-the-current-date-with-call-later">18.5.1.18.2.使用call_later()</a>显示当前日期</span></li><li class="toctree-l4"><span class="yiyi-st" id="yiyi-85"><a class="reference internal" href="asyncio-eventloop.html#watch-a-file-descriptor-for-read-events">18.5.1.18.3.观看文件描述器读取事件</a></span></li><li class="toctree-l4"><span class="yiyi-st" id="yiyi-86"><a class="reference internal" href="asyncio-eventloop.html#set-signal-handlers-for-sigint-and-sigterm">18.5.1.18.4.设置SIGINT和SIGTERM</a>的信号处理程序</span></li></ul></li></ul></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-97"><a class="reference internal" href="asyncio-eventloops.html">18.5.2.事件循环</a></span><ul><li class="toctree-l3"><span class="yiyi-st" id="yiyi-89"><a class="reference internal" href="asyncio-eventloops.html#event-loop-functions">18.5.2.1.事件循环函数</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-90"><a class="reference internal" href="asyncio-eventloops.html#available-event-loops">18.5.2.2.可用事件循环</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-93"><a class="reference internal" href="asyncio-eventloops.html#platform-support">18.5.2.3.平台支持</a></span><ul><li class="toctree-l4"><span class="yiyi-st" id="yiyi-91"><a class="reference internal" href="asyncio-eventloops.html#windows">18.5.2.3.1. Windows</a></span></li><li class="toctree-l4"><span class="yiyi-st" id="yiyi-92"><a class="reference internal" href="asyncio-eventloops.html#mac-os-x">18.5.2.3.2. Mac OS X</a></span></li></ul></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-94"><a class="reference internal" href="asyncio-eventloops.html#event-loop-policies-and-the-default-policy">18.5.2.4.事件循环策略和默认策略</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-95"><a class="reference internal" href="asyncio-eventloops.html#event-loop-policy-interface">18.5.2.5.事件循环策略接口</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-96"><a class="reference internal" href="asyncio-eventloops.html#access-to-the-global-loop-policy">18.5.2.6.访问全局循环策略</a></span></li></ul></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-110"><a class="reference internal" href="asyncio-task.html">18.5.3.任务和协程</a></span><ul><li class="toctree-l3"><span class="yiyi-st" id="yiyi-101"><a class="reference internal" href="asyncio-task.html#coroutines">18.5.3.1.协程</a></span><ul><li class="toctree-l4"><span class="yiyi-st" id="yiyi-98"><a class="reference internal" href="asyncio-task.html#example-hello-world-coroutine">18.5.3.1.1.示例:Hello World协程</a></span></li><li class="toctree-l4"><span class="yiyi-st" id="yiyi-99"><a class="reference internal" href="asyncio-task.html#example-coroutine-displaying-the-current-date">18.5.3.1.2.示例:协程显示当前日期</a></span></li><li class="toctree-l4"><span class="yiyi-st" id="yiyi-100"><a class="reference internal" href="asyncio-task.html#example-chain-coroutines">18.5.3.1.3.示例:链协程</a></span></li></ul></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-102"><a class="reference internal" href="asyncio-task.html#invalidstateerror">18.5.3.2. InvalidStateError 0>></a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-103"><a class="reference internal" href="asyncio-task.html#timeouterror">18.5.3.3. TimeoutError</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-106"><a class="reference internal" href="asyncio-task.html#future">18.5.3.4.未来</a></span><ul><li class="toctree-l4"><span class="yiyi-st" id="yiyi-104"><a class="reference internal" href="asyncio-task.html#example-future-with-run-until-complete">18.5.3.4.1.示例:未来与run_until_complete()</a></span></li><li class="toctree-l4"><span class="yiyi-st" id="yiyi-105"><a class="reference internal" href="asyncio-task.html#example-future-with-run-forever">18.5.3.4.2.示例:未来与run_forever()</a></span></li></ul></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-108"><a class="reference internal" href="asyncio-task.html#task">18.5.3.5.任务</a></span><ul><li class="toctree-l4"><span class="yiyi-st" id="yiyi-107"><a class="reference internal" href="asyncio-task.html#example-parallel-execution-of-tasks">18.5.3.5.1.示例:并行执行任务</a></span></li></ul></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-109"><a class="reference internal" href="asyncio-task.html#task-functions">18.5.3.6.任务函数</a></span></li></ul></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-130"><a class="reference internal" href="asyncio-protocol.html">18.5.4.传输和协议(基于回调的API)</a></span><ul><li class="toctree-l3"><span class="yiyi-st" id="yiyi-116"><a class="reference internal" href="asyncio-protocol.html#transports">18.5.4.1.传输</a></span><ul><li class="toctree-l4"><span class="yiyi-st" id="yiyi-111"><a class="reference internal" href="asyncio-protocol.html#basetransport">18.5.4.1.1. BaseTransport</a></span></li><li class="toctree-l4"><span class="yiyi-st" id="yiyi-112"><a class="reference internal" href="asyncio-protocol.html#readtransport">18.5.4.1.2. ReadTransport</a></span></li><li class="toctree-l4"><span class="yiyi-st" id="yiyi-113"><a class="reference internal" href="asyncio-protocol.html#writetransport">18.5.4.1.3. WriteTransport</a></span></li><li class="toctree-l4"><span class="yiyi-st" id="yiyi-114"><a class="reference internal" href="asyncio-protocol.html#datagramtransport">18.5.4.1.4. DatagramTransport</a></span></li><li class="toctree-l4"><span class="yiyi-st" id="yiyi-115"><a class="reference internal" href="asyncio-protocol.html#basesubprocesstransport">18.5.4.1.5. BaseSubprocessTransport</a></span></li></ul></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-123"><a class="reference internal" href="asyncio-protocol.html#protocols">18.5.4.2.协议</a></span><ul><li class="toctree-l4"><span class="yiyi-st" id="yiyi-117"><a class="reference internal" href="asyncio-protocol.html#protocol-classes">18.5.4.2.1.协议类</a></span></li><li class="toctree-l4"><span class="yiyi-st" id="yiyi-118"><a class="reference internal" href="asyncio-protocol.html#connection-callbacks">18.5.4.2.2.连接回调</a></span></li><li class="toctree-l4"><span class="yiyi-st" id="yiyi-119"><a class="reference internal" href="asyncio-protocol.html#streaming-protocols">18.5.4.2.3.流协议</a></span></li><li class="toctree-l4"><span class="yiyi-st" id="yiyi-120"><a class="reference internal" href="asyncio-protocol.html#datagram-protocols">18.5.4.2.4.数据报协议</a></span></li><li class="toctree-l4"><span class="yiyi-st" id="yiyi-121"><a class="reference internal" href="asyncio-protocol.html#flow-control-callbacks">18.5.4.2.5.流控制回调</a></span></li><li class="toctree-l4"><span class="yiyi-st" id="yiyi-122"><a class="reference internal" href="asyncio-protocol.html#coroutines-and-protocols">18.5.4.2.6.协程和协议</a></span></li></ul></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-129"><a class="reference internal" href="asyncio-protocol.html#protocol-examples">18.5.4.3.协议示例</a></span><ul><li class="toctree-l4"><span class="yiyi-st" id="yiyi-124"><a class="reference internal" href="asyncio-protocol.html#tcp-echo-client-protocol">18.5.4.3.1. TCP回显客户端协议</a></span></li><li class="toctree-l4"><span class="yiyi-st" id="yiyi-125"><a class="reference internal" href="asyncio-protocol.html#tcp-echo-server-protocol">18.5.4.3.2. TCP echo服务器协议</a></span></li><li class="toctree-l4"><span class="yiyi-st" id="yiyi-126"><a class="reference internal" href="asyncio-protocol.html#udp-echo-client-protocol">18.5.4.3.3. UDP echo client protocol</a></span></li><li class="toctree-l4"><span class="yiyi-st" id="yiyi-127"><a class="reference internal" href="asyncio-protocol.html#udp-echo-server-protocol">18.5.4.3.4. UDP echo服务器协议</a></span></li><li class="toctree-l4"><span class="yiyi-st" id="yiyi-128"><a class="reference internal" href="asyncio-protocol.html#register-an-open-socket-to-wait-for-data-using-a-protocol">18.5.4.3.5.注册打开的套接字以使用协议</a>等待数据</span></li></ul></li></ul></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-142"><a class="reference internal" href="asyncio-stream.html">18.5.5. Streams(协程式API)</a></span><ul><li class="toctree-l3"><span class="yiyi-st" id="yiyi-131"><a class="reference internal" href="asyncio-stream.html#stream-functions">18.5.5.1.流函数</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-132"><a class="reference internal" href="asyncio-stream.html#streamreader">18.5.5.2. StreamReader</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-133"><a class="reference internal" href="asyncio-stream.html#streamwriter">18.5.5.3. StreamWriter</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-134"><a class="reference internal" href="asyncio-stream.html#streamreaderprotocol">18.5.5.4. StreamReaderProtocol</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-135"><a class="reference internal" href="asyncio-stream.html#incompletereaderror">18.5.5.5. IncompleteReadError</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-136"><a class="reference internal" href="asyncio-stream.html#limitoverrunerror">18.5.5.6. LimitOverrunError</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-141"><a class="reference internal" href="asyncio-stream.html#stream-examples">18.5.5.7.流示例</a></span><ul><li class="toctree-l4"><span class="yiyi-st" id="yiyi-137"><a class="reference internal" href="asyncio-stream.html#tcp-echo-client-using-streams">18.5.5.7.1. TCP echo客户端使用流</a></span></li><li class="toctree-l4"><span class="yiyi-st" id="yiyi-138"><a class="reference internal" href="asyncio-stream.html#tcp-echo-server-using-streams">18.5.5.7.2. TCP echo服务器使用流</a></span></li><li class="toctree-l4"><span class="yiyi-st" id="yiyi-139"><a class="reference internal" href="asyncio-stream.html#get-http-headers">18.5.5.7.3.获取HTTP标头</a></span></li><li class="toctree-l4"><span class="yiyi-st" id="yiyi-140"><a class="reference internal" href="asyncio-stream.html#register-an-open-socket-to-wait-for-data-using-streams">18.5.5.7.4.注册打开的套接字以使用流等待数据</a></span></li></ul></li></ul></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-152"><a class="reference internal" href="asyncio-subprocess.html">18.5.6.子过程</a></span><ul><li class="toctree-l3"><span class="yiyi-st" id="yiyi-143"><a class="reference internal" href="asyncio-subprocess.html#windows-event-loop">18.5.6.1. Windows事件循环</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-144"><a class="reference internal" href="asyncio-subprocess.html#create-a-subprocess-high-level-api-using-process">18.5.6.2.创建子流程:使用Process</a>创建高级API</span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-145"><a class="reference internal" href="asyncio-subprocess.html#create-a-subprocess-low-level-api-using-subprocess-popen">18.5.6.3.创建子进程:使用subprocess.Popen</a>的低级API</span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-146"><a class="reference internal" href="asyncio-subprocess.html#constants">18.5.6.4.常数</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-147"><a class="reference internal" href="asyncio-subprocess.html#process">18.5.6.5.过程</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-148"><a class="reference internal" href="asyncio-subprocess.html#subprocess-and-threads">18.5.6.6.子进程和线程</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-151"><a class="reference internal" href="asyncio-subprocess.html#subprocess-examples">18.5.6.7.子过程示例</a></span><ul><li class="toctree-l4"><span class="yiyi-st" id="yiyi-149"><a class="reference internal" href="asyncio-subprocess.html#subprocess-using-transport-and-protocol">18.5.6.7.1.使用传输和协议的子流程</a></span></li><li class="toctree-l4"><span class="yiyi-st" id="yiyi-150"><a class="reference internal" href="asyncio-subprocess.html#subprocess-using-streams">18.5.6.7.2.使用流的子流程</a></span></li></ul></li></ul></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-160"><a class="reference internal" href="asyncio-sync.html">18.5.7.同步原语</a></span><ul><li class="toctree-l3"><span class="yiyi-st" id="yiyi-156"><a class="reference internal" href="asyncio-sync.html#locks">18.5.7.1.锁定</a></span><ul><li class="toctree-l4"><span class="yiyi-st" id="yiyi-153"><a class="reference internal" href="asyncio-sync.html#lock">18.5.7.1.1.锁定</a></span></li><li class="toctree-l4"><span class="yiyi-st" id="yiyi-154"><a class="reference internal" href="asyncio-sync.html#event">18.5.7.1.2.事件</a></span></li><li class="toctree-l4"><span class="yiyi-st" id="yiyi-155"><a class="reference internal" href="asyncio-sync.html#condition">18.5.7.1.3.条件</a></span></li></ul></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-159"><a class="reference internal" href="asyncio-sync.html#semaphores">18.5.7.2.信号量</a></span><ul><li class="toctree-l4"><span class="yiyi-st" id="yiyi-157"><a class="reference internal" href="asyncio-sync.html#semaphore">18.5.7.2.1.信号量</a></span></li><li class="toctree-l4"><span class="yiyi-st" id="yiyi-158"><a class="reference internal" href="asyncio-sync.html#boundedsemaphore">18.5.7.2.2. BoundedSemaphore</a></span></li></ul></li></ul></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-165"><a class="reference internal" href="asyncio-queue.html">18.5.8.队列</a></span><ul><li class="toctree-l3"><span class="yiyi-st" id="yiyi-161"><a class="reference internal" href="asyncio-queue.html#queue">18.5.8.1.队列</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-162"><a class="reference internal" href="asyncio-queue.html#priorityqueue">18.5.8.2. PriorityQueue</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-164"><a class="reference internal" href="asyncio-queue.html#lifoqueue">18.5.8.3. LifoQueue</a></span><ul><li class="toctree-l4"><span class="yiyi-st" id="yiyi-163"><a class="reference internal" href="asyncio-queue.html#exceptions">18.5.8.3.1.例外</a></span></li></ul></li></ul></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-176"><a class="reference internal" href="asyncio-dev.html">18.5.9.使用asyncio开发</a></span><ul><li class="toctree-l3"><span class="yiyi-st" id="yiyi-166"><a class="reference internal" href="asyncio-dev.html#debug-mode-of-asyncio">18.5.9.1.调试模式asyncio</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-167"><a class="reference internal" href="asyncio-dev.html#cancellation">18.5.9.2.取消</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-168"><a class="reference internal" href="asyncio-dev.html#concurrency-and-multithreading">18.5.9.3.并发和多线程</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-169"><a class="reference internal" href="asyncio-dev.html#handle-blocking-functions-correctly">18.5.9.4.正确处理阻塞函数</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-170"><a class="reference internal" href="asyncio-dev.html#logging">18.5.9.5.记录</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-171"><a class="reference internal" href="asyncio-dev.html#detect-coroutine-objects-never-scheduled">18.5.9.6.检测协程对象从未安排</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-172"><a class="reference internal" href="asyncio-dev.html#detect-exceptions-never-consumed">18.5.9.7.检测未使用的异常</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-173"><a class="reference internal" href="asyncio-dev.html#chain-coroutines-correctly">18.5.9.8.链协程</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-174"><a class="reference internal" href="asyncio-dev.html#pending-task-destroyed">18.5.9.9.待处理任务已销毁</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-175"><a class="reference internal" href="asyncio-dev.html#close-transports-and-event-loops">18.5.9.10.关闭传输和事件循环</a></span></li></ul></li></ul></li><li class="toctree-l1"><span class="yiyi-st" id="yiyi-180"><a class="reference internal" href="asyncore.html">18.6. <code class="docutils literal"><span class="pre">asyncore</span></code> - 异步套接字处理程序</a></span><ul><li class="toctree-l2"><span class="yiyi-st" id="yiyi-178"><a class="reference internal" href="asyncore.html#asyncore-example-basic-http-client">18.6.1. asyncore示例基本HTTP客户端</a></span></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-179"><a class="reference internal" href="asyncore.html#asyncore-example-basic-echo-server">18.6.2. asyncore示例基本echo服务器</a></span></li></ul></li><li class="toctree-l1"><span class="yiyi-st" id="yiyi-182"><a class="reference internal" href="asynchat.html">18.7. <code class="docutils literal"><span class="pre">asynchat</span></code> - 异步套接字命令/响应处理程序</a></span><ul><li class="toctree-l2"><span class="yiyi-st" id="yiyi-181"><a class="reference internal" href="asynchat.html#asynchat-example">18.7.1. asynchat示例</a></span></li></ul></li><li class="toctree-l1"><span class="yiyi-st" id="yiyi-188"><a class="reference internal" href="signal.html">18.8. <code class="docutils literal"><span class="pre">signal</span></code> - 设置异步事件处理程序</a></span><ul><li class="toctree-l2"><span class="yiyi-st" id="yiyi-185"><a class="reference internal" href="signal.html#general-rules">18.8.1.一般规则</a></span><ul><li class="toctree-l3"><span class="yiyi-st" id="yiyi-183"><a class="reference internal" href="signal.html#execution-of-python-signal-handlers">18.8.1.1.执行Python信号处理程序</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-184"><a class="reference internal" href="signal.html#signals-and-threads">18.8.1.2.信号和线程</a></span></li></ul></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-186"><a class="reference internal" href="signal.html#module-contents">18.8.2.模块内容</a></span></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-187"><a class="reference internal" href="signal.html#example">18.8.3.示例</a></span></li></ul></li><li class="toctree-l1"><span class="yiyi-st" id="yiyi-189"><a class="reference internal" href="mmap.html">18.9. <code class="docutils literal"><span class="pre">mmap</span></code> - 内存映射文件支持</a></span></li></ul></div></div></div> |