twisted python_python-twisted系列(1)

前言:

这不是一个入门教程。而是知识点的梳理。

开胃图:

这是一个TCP server的“交互图”。

reactor

它是Twisted事件处理的核心。包括一些处理网络通讯,线程和事件分派的接口。

一旦调用了其run方法,reactor就会一直监听事件,直到被终止(调用stop/crash,或者ctrl+c)

这个类比较重要。重要方法:

接口

方法

说明

IReactorCore

resolve

返回一个deffered对象用于解析主机名

run

触发'startup'系统事件,修改reactor的状态为'running',然后运行主事件循环(直到调用stop或者crash)

stop

触发'shutdown'系统事件,修改reactor状态为'stopped',并使得reactor.run()退出。

crash

立即停止主事件循环而不出发任何事件。可能会丢数据。这个方式比较粗鲁。

iterate

运行main loop的i/o轮询函数一会儿。(使用小心)

fireSystemEvent

触发系统事件。比较常见的有'startup','shutdown','persist'

removeSystemEventTrigger

移除系统时间的处理函数。参数是上面函数的返回值。

callWhenRunning

reactor运行时调用某个函数。

IReactorTCP

listenTCP

将某个协议的factory实例绑定到某个端口

connectTCP

连接TCP客户端

IReactorSSL

listenSSL

将某个协议的factory实例绑定到某个TCP/IP端口,使用ssl链接。

connectSSL

将客户端协议连接到远程的SSL套接字

IReactorUDP

listenUDP

将给定的报文协议连接到指定的UDP端口。

IReactorSocket

adoptStreamPort

将已存在的处于监听状态的SOCK_STREAM类型的套接字添加到reactor中以监控新的连接然后接受并处理他们。

adoptStreamConnection

将已经存在的连接上了的SOCK_STREAM类型的套接字添加到reactor中以检测数据。

adoptDatagramPort

将已存在的处于监听状态的SOCK_DGRAM类型的套接字添加到reactor中以监控来为读写做好准备。

Factory

切确的说,它取名不太好,应该叫做FactoryOfProtocals,即协议工厂(也就是工厂模式),用来产生协议实例的。

Factory并不知道连接,它可能绑定多个host的多个端口。通常用来做数据的获取/保存等操作。

重要方法:

名称

备注

属性

protocal

类。具体的协议类,定义了这个就不用重写buildProtocal方法了。

方法

doStart

确保startFactory被调用。用户不应该调用!!

doStop

确保stopFactory被调用。用户不应该调用!!

startFactory

在监听端口或者Connector之前会被调用。仅被调用一次,哪怕工厂绑定到多个端口。因此适于做一些用户自定义的事情,比如链接数据库,打开文件等等。

stopFactory

在所有端口/Connector结束监听之前会被调用。在这里做上面的擦屁股的事情,比如关闭数据库连接,关闭文件等等。

buildProtocol

创建协议的实例。

附赠三哥的一份理解,在这里。

定义:Twisted的Protocol用异步的方式处理数据。当网络事件到达时,protocol会调用其方法来响应这些事件。每一个连接都会有一个Protocol与之对应。

BaseProtocol

名称

备注

方法

makeConnection

为指定的server的transport对象产生连接。

connectionMade

当连接产生时被调用的方法。

Protocol

名称

备注

方法

dataReceived

收到数据时会被调用的方法

connectionLost

连接关闭时会被调用的方法

LineReceiver

名称

备注

属性

delimiter

行的结束符。默认为'\r\n'。

MAX_LENGTH

行的最大字符数,默认为16384。

设置接收器的行的模式。

设置接收器的原始模式。之后接收的数据将被发给rawDataReceived函数而不是lineReceived。

按行发送的数据的处理 函数。

向连接的另外一端发送一行数据。

为指定的server的transport对象产生连接。

默认实现了的协议:

amp

socks- v4

ftp

sip

postfix

telnet

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值