Asyncio 协议Protocol 与 传输Transport

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Asyncio 协议Protocol 与 传输Transport相关的知识,希望对你有一定的参考价值。

参考技术A

python在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 序列化协议

FTP(File Transfer Protocol)是什么?

TCP/IP , HTTP Protocol

5G系列SDAP (Service Data Adaptation Protocol)协议详解