%PDF- %PDF-
| Direktori : /proc/self/root/proc/thread-self/root/lib64/python2.7/site-packages/tornado/ |
| Current File : //proc/self/root/proc/thread-self/root/lib64/python2.7/site-packages/tornado/tcpserver.pyc |
�
��L]c @� s d Z d d l m Z m Z m Z m Z d d l Z d d l Z d d l Z d d l m
Z
d d l m Z d d l
m Z m Z d d l m Z m Z m Z d d l m Z d d l m Z y d d l Z Wn e k
r� d Z n Xd
e f d � � YZ d S( s+ A non-blocking, single-threaded TCP server.i ( t absolute_importt divisiont print_functiont with_statementN( t app_log( t IOLoop( t IOStreamt SSLIOStream( t bind_socketst add_accept_handlert ssl_wrap_socket( t process( t errno_from_exceptiont TCPServerc B� s} e Z d Z d
d
d
d
d � Z d d � Z d � Z d � Z d
e j d d � Z
d d � Z d
� Z d � Z
d � Z RS( s� A non-blocking, single-threaded TCP server.
To use `TCPServer`, define a subclass which overrides the `handle_stream`
method.
To make this server serve SSL traffic, send the ``ssl_options`` keyword
argument with an `ssl.SSLContext` object. For compatibility with older
versions of Python ``ssl_options`` may also be a dictionary of keyword
arguments for the `ssl.wrap_socket` method.::
ssl_ctx = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH)
ssl_ctx.load_cert_chain(os.path.join(data_dir, "mydomain.crt"),
os.path.join(data_dir, "mydomain.key"))
TCPServer(ssl_options=ssl_ctx)
`TCPServer` initialization follows one of three patterns:
1. `listen`: simple single-process::
server = TCPServer()
server.listen(8888)
IOLoop.current().start()
2. `bind`/`start`: simple multi-process::
server = TCPServer()
server.bind(8888)
server.start(0) # Forks multiple sub-processes
IOLoop.current().start()
When using this interface, an `.IOLoop` must *not* be passed
to the `TCPServer` constructor. `start` will always start
the server on the default singleton `.IOLoop`.
3. `add_sockets`: advanced multi-process::
sockets = bind_sockets(8888)
tornado.process.fork_processes(0)
server = TCPServer()
server.add_sockets(sockets)
IOLoop.current().start()
The `add_sockets` interface is more complicated, but it can be
used with `tornado.process.fork_processes` to give you more
flexibility in when the fork happens. `add_sockets` can
also be used in single-process servers if you want to create
your listening sockets in some way other than
`~tornado.netutil.bind_sockets`.
.. versionadded:: 3.1
The ``max_buffer_size`` argument.
c C� s� | | _ | | _ i | _ g | _ t | _ | | _ | | _ | j d k r� t | j t
� r� d | j k r~ t d � � n t j
j | j d � s� t d | j d � � n d | j k r� t j
j | j d � r� t d | j d � � q� n d S( Nt certfiles% missing key "certfile" in ssl_optionss certfile "%s" does not existt keyfiles keyfile "%s" does not exist( t io_loopt ssl_optionst _socketst _pending_socketst Falset _startedt max_buffer_sizet read_chunk_sizet Nonet
isinstancet dictt KeyErrort ost patht existst
ValueError( t selfR R R R ( ( s7 /usr/lib64/python2.7/site-packages/tornado/tcpserver.pyt __init__Z s"