Asyncio 协议Protocol 与 传输Transport
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Asyncio 协议Protocol 与 传输Transport相关的知识,希望对你有一定的参考价值。
参考技术Apython在asyncio库中,提供了一种简单的网络传输模型,协议与传输。
协议和传输,在socket的基础上进行了封装,是更高一层次的应用。
所以说: ASGI服务器并不是从socket基础层面实现通信,而是使用了asyncio中原生提供的一种网络通信方式。
Transport 类位于 asyncio.transports 中,有例如 BaseTransport , WriteTransport 只写, ReadTransport 只读, Transport 继承于前两个只写和只读的Transport
位于 asyncio.Protocol
接受protocol_factory,可以调用的工厂函数,其返回一个协议Protocol实例
server 对象是 asyncio.base_events.Server 的实例
我简单写了个小例子,使用协议和传输,制作一个C/S
为了方便观看调整了下key顺序
可以明确看到,使用了socket,说明socket的建立,已经是封装到内部的。
s端和c端的socket是完全对应的。
而H11是一个实现 http协议 库
uvicorn 用了HTTP协议库做了相应的 Protocol 。交由asyncio提供的网络应用服务处理
以上是关于Asyncio 协议Protocol 与 传输Transport的主要内容,如果未能解决你的问题,请参考以下文章
在asyncio.Protocol.data_received中调用协同程序
HTTP协议(HyperText Transfer Protocol,超文本传输协议)
互联网协议 — Protocol Buffers 序列化协议