创建绑定到给定端口和地址的侦听套接字。
返回套接字对象的列表(如果给定地址映射到多个 IP 地址,则返回多个套接字,这对于混合使用 IPv4 和 IPv6 最常见)。
地址可以是 IP 地址或主机名。 如果是主机名,服务器将侦听与该名称关联的所有 IP 地址。 Address 可以是空字符串或 None 以侦听所有可用接口。 Family 可以设置为 socket.AF_INET 或 socket.AF_INET6 以限制 IPv4 或 IPv6 地址,否则将使用两者(如果可用)。
backlog参数与 socket.listen()的含义相同。
flags是 getaddrinfo的 AI_* 标志位掩码,如 socket.AI_PASSIVE | socket.AI_NUMERICHOST
reuse_port选项为列表中的每个套接字设置 SO_REUSEPORT 选项。 如果您的平台不支持此选项,则会引发 ValueError。
创建一个监听 unix 套接字。
如果具有给定名称的套接字已经存在,它将被删除。 如果存在具有该名称的任何其他文件,则会引发异常。
返回一个套接字对象(不是像 bind_sockets这样的套接字对象列表)
添加 IOLoop事件处理程序以接受 sock上的新连接。
当一个连接被接受时,callback(connection, address)会被运行(connection是一个socket对象,address是连接另一端的地址)。 请注意,此签名与用于 IOLoop处理程序的回调(fd,events)签名不同。
返回一个可调用对象,调用该可调用对象时,将删除 IOLoop事件处理程序并停止处理进一步的传入连接。
在 5.0 版中更改: io_loop 参数(自 4.1 版以来已弃用)已被删除。
在 5.0 版更改:返回一个可调用对象(之前没有返回)。
如果给定的字符串是格式正确的 IP 地址,则返回 True。
支持 IPv4 和 IPv6。
可配置的异步 DNS 解析器接口。
默认情况下,使用阻塞实现(简单地调用 socket.getaddrinfo)。 可以使用 Resolver.configure 类方法选择替代实现:
Resolver.configure('tornado.netutil.ThreadedResolver') Tornado 包含的这个接口的实现是
tornado.netutil.DefaultExecutorResolvertornado.netutil.BlockingResolver(已弃用)tornado.netutil.ThreadedResolver(已弃用)tornado.netutil.OverrideResolvertornado.platform.twisted.TwistedResolvertornado.platform.caresresolver.CaresResolver在 5.0 版更改: 默认实现已从 BlockingResolver更改为 DefaultExecutorResolver。
解析地址。
host参数是一个字符串,可以是主机名或文字 IP 地址。
返回一个 Future,其结果是 (family, address) 对的列表,其中 address 是一个适合传递给 socket.connect 的元组(即 IPv4 的 (host, port) 对;IPv6 可能存在其他字段)。 如果传递了回调,它将在完成时将结果作为参数运行。
引发:IOError – 如果地址无法解析。
在 4.4 版更改:标准化所有实现以引发 IOError。
在 6.0 版更改: 回调参数已删除。 请改用返回的可等待对象。
关闭解析器,释放所有使用的资源。
使用 IOLoop.run_in_executor 的解析器实现。
使用 concurrent.futures.Executor 的解析器实现。
当您需要对正在使用的执行器进行额外控制时,请使用它而不是 ThreadedResolver。
除非close_resolver=False,否则当resolver关闭时executor会被关闭; 如果您想在其他地方重用相同的执行器,请使用它。
在 5.0 版中更改: io_loop 参数(自 4.1 版以来已弃用)已被删除。
5.0 版后已弃用:默认解析器现在使用 IOLoop.run_in_executor; 使用它而不是此类。
默认解析器实现,使用 socket.getaddrinfo。
IOLoop将在解析期间被阻止,尽管回调将在下一次 IOLoop迭代之前运行。
5.0 版后已弃用:默认解析器现在使用 IOLoop.run_in_executor; 使用它而不是此类。
多线程非阻塞解析器实现。
需要安装 concurrent.futures 包(自 Python 3.2 起在标准库中可用,可在旧版本中使用 pip install futures 安装)。
线程池大小可以配置为:
Resolver.configure('tornado.netutil.ThreadedResolver',
num_threads=10) 在 3.1 版更改: 所有 ThreadedResolver共享一个线程池,其大小由要创建的第一个设置。
5.0 版后已弃用:默认解析器现在使用 IOLoop.run_in_executor; 使用它而不是此类。
使用覆盖映射包装解析器。
这可用于进行本地 DNS 更改(例如用于测试),而无需修改系统范围的设置。
映射可以是三种格式:
{
# Hostname to host or ip
"example.com": "127.0.1.1",
# Host+port to host+port
("login.example.com", 443): ("localhost", 1443),
# Host+port+address family to host+port
("login.example.com", 443, socket.AF_INET6): ("::1", 1443),
} 在 5.0 版更改: 添加了对主机端口系列三元组的支持。
尝试将 ssl_options字典转换为 SSLContext对象。
ssl_options字典包含要传递给 ssl.wrap_socket 的关键字。 在 Python 2.7.9+ 中,可以改用 ssl.SSLContext 对象。 此函数将dict表单转换为其 SSLContext等效项,并且可以在接受这两种表单的组件需要升级到 SSLContext 版本以使用 SNI或 NPN等功能时使用。
返回包装给定套接字的ssl.SSLSocket。
ssl_options可以是ssl.SSLContext 对象或字典(由 ssl_options_to_context 接受)。 额外的关键字参数被传递给 wrap_socket(SSLContext方法或 ssl模块函数,视情况而定)。