流 — Python 文档
流
流是用于处理网络连接的高级异步/等待就绪原语。 流允许在不使用回调或低级协议和传输的情况下发送和接收数据。
下面是一个使用 asyncio 流编写的 TCP 回显客户端的示例:
另请参阅下面的 示例 部分。
流函数
以下顶级异步函数可用于创建和处理流:
Unix 套接字
流阅读器
- class asyncio.StreamReader
表示提供 API 以从 IO 流读取数据的读取器对象。
不建议直接实例化StreamReader对象; 改用
open_connection()
和start_server()
。- at_eof()
如果缓冲区为空并且
feed_eof()
被调用,则返回True
。
流写入器
- class asyncio.StreamWriter
表示提供 API 以将数据写入 IO 流的编写器对象。
不建议直接实例化StreamWriter对象; 改用
open_connection()
和start_server()
。- can_write_eof()
如果底层传输支持 write_eof() 方法,则返回
True
,否则返回False
。
- write_eof()
缓冲的写入数据刷新后关闭流的写入端。
- transport
返回底层异步传输。
- get_extra_info(name, default=None)
访问可选的交通信息; 有关详细信息,请参阅 BaseTransport.get_extra_info()。
- write(data)
将 data 写入流。
此方法不受流量控制。 对
write()
的调用应该跟在drain()
之后。
- writelines(data)
将字节列表(或任何可迭代的)写入流。
此方法不受流量控制。 对
writelines()
的调用应该跟在drain()
之后。
- close()
关闭流。
- is_closing()
如果流已关闭或正在关闭,则返回
True
。3.7 版中的新功能。
例子
使用流的 TCP 回显客户端
使用 asyncio.open_connection()
函数的 TCP 回显客户端:
使用流的 TCP 回显服务器
使用 asyncio.start_server()
函数的 TCP 回显服务器:
获取 HTTP 标头
查询通过命令行传递的 URL 的 HTTP 标头的简单示例:
用法:
或使用 HTTPS:
注册一个打开的套接字以使用流等待数据
协程等待套接字使用 open_connection()
函数接收数据:
也可以看看
注册一个打开的套接字以使用协议等待数据示例使用低级协议和loop.create_connection()
方法。
watch a file descriptor for read events 示例使用低级 loop.add_reader() 方法来监视文件描述符。