文档: https://aiohappyeyeballs.readthedocs.io
源代码: https://github.com/aio-libs/aiohappyeyeballs
当您已经拥有addrinfo列表而不是DNS名称时,此库可用于连接 Happy Eyeballs (RFC 8305)。
stdlib版本 loop.create_connection()
仅在您传入未解析的名称时才有效,这不适用于使用DNS缓存的方法或通过
zeroconf
等其他方法解析名称的情况。
通过pip(或您喜欢的包管理器)安装:
pip install aiohappyeyeballs
aiohappyeyeballs 的许可证与 cpython 本身相同。
addr_infos = await loop.getaddrinfo("example.org", 80)
socket = await start_connection(addr_infos)
socket = await start_connection(addr_infos, local_addr_infos=local_addr_infos, happy_eyeballs_delay=0.2)
transport, protocol = await loop.create_connection(
MyProtocol, sock=socket, ...)
# 从 addr_info 中移除每个族的第一个地址
pop_addr_infos_interleave(addr_info, 1)
# 从 addr_info 中移除所有匹配的地址
remove_addr_infos(addr_info, "dead::beef::")
# 将 local_addr 转换为 local_addr_infos
local_addr_infos = addr_to_addr_infos(("127.0.0.1",0))本软件包包含来自cpython的代码,并根据cpython本身的条款获得许可。
本软件包是使用 Copier 和 browniebroke/pypackage-template 项目模板创建的。