3.3 Tcp Client和Tcp Server

tornado.tcpclient.TCPClient(resolver=None, io_loop=None)

这个呢就是tornado自有的一个tcpclient,使用它的时候,可以直接继承它.

它有一个方法
connect(host, port, af=<AddressFamily.AF_UNSPEC: 0>, ssl_options=None, max_buffer_size=None)

它会返回IOStream的实例,如果ssl_options为真,那么会返回SSLIOStream。

通过给的host和port来连接服务器,然后通过返回的stream,就可以进行读写等操作了。

tornado.tcpserver.TCPServer(io_loop=None, ssl_options=None, max_buffer_size=None, read_chunk_size=None)

这个就是用来创建TCPserver的。它是非阻塞,单线程的。

来看一下关于它的几个函数

1.listen(port, address=””)
  1. server = TCPServer()
  2. server.listen(8888)
  3. IOLoop.current().start()

这就可以创建一个简单的tcpserver,端口号8888

2.bind(port, address=None, family=, backlog=128)

开启多进程的一个方法

  1. server = TCPServer()
  2. server.bind(8888)
  3. server.start(0) # Forks multiple sub-processes
  4. IOLoop.current().start()
3.add_sockets(sockets)

也可以开启多进程。

  1. sockets = bind_sockets(8888)
  2. tornado.process.fork_processes(0)
  3. server = TCPServer()
  4. server.add_sockets(sockets)
  5. IOLoop.current().start()
4.handle_stream(stream, address)

这是我们用来接收stream的方法。你可以通过继承TCPServer,来覆盖这个方法。

几个方法非常简单,都是最基本的,在写server的时候都需要用到的。下一节我们来写一个简单的tcpserver。