gevent.server --TCP/SSL服务器#
TCP/SSL服务器
- class DatagramServer(*args, **kwargs)[源代码]#
基类:
BaseServerUDP服务器
- class StreamServer(listener, handle=None, backlog=None, spawn='default', **ssl_args)[源代码]#
基类:
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 关键字参数。