gevent.server
--TCP/SSL服务器¶TCP/SSL服务器
基类:gevent.baseserver.BaseServer
UDP服务器
基类:gevent.baseserver.BaseServer
通用TCP服务器。
接受侦听套接字上的连接并生成用户提供的连接 手柄 每个连接的函数有两个参数:客户机套接字和客户机地址。
请注意,尽管成功生成的处理程序中的错误不会影响服务器或其他连接,但由 accept()
和 产卵 导致服务器在短时间内停止接受。确切的周期取决于 min_delay
和 max_delay
属性。
延迟开始于 min_delay
每一个连续的错误都会加倍直到达到 max_delay
. 一个成功的 accept()
将延迟重置为 min_delay
再一次。
见 BaseServer
有关定义 手柄 功能及其重要限制。
SSL支持
当给定正确的关键字参数时,服务器可以选择在SSL模式下工作。(也就是说,任何关键字参数的存在都将触发SSL模式。)在python 2.7.9和更高版本(支持 ssl.SSLContext
,这可以通过配置 SSLContext
. 在任何Python版本上,都可以通过为 ssl.wrap_socket()
.
传入的套接字在传递到 手柄 功能。
如果 ssl_context 关键字参数存在,它应包含 ssl.SSLContext
. 其余的关键字参数将传递给 ssl.SSLContext.wrap_socket()
该对象的方法。根据python版本的不同,支持的参数可能包括:
server_hostname
suppress_ragged_eofs
do_handshake_on_connect
警告
使用sslcontext时,应将其从 gevent.ssl
或者需要对过程进行猴子修补。如果进程不是monkey补丁,并且您通过了标准库sslcontext,那么生成的客户机套接字将不与gevent协作。
否则,假设关键字参数应用于 ssl.wrap_socket()
. 这些关键字参数可以包括:
关键文件
证书文件
cert_reqs
ssl_version
ca_certs
suppress_ragged_eofs
do_handshake_on_connect
密码
在 1.2a2 版更改: 为添加支持 ssl_context 关键字参数。
Next page: gevent.signal
-- Cooperative implementation of special cases of signal.signal()