全部博文(921)
分类: Python/Ruby
2011-10-30 22:48:36
一、简介
本文通过继承Twisted中的一些类实现了一个基本的Twisted应用程序,期间实现了协议、工厂并进行了服务器的监听,并将日志输出的屏幕。
二、基本框架
·导入部分
这部分导入的内容是专供协议和工厂类使用的,其他部分的导入可能并不在同一模块当中,所以到了具体的代码部分再去导入。
from twisted.internet import protocol
from twisted.protocols import basic
·协议
继承了一个LineReceiver,实现了行和原始两种方式的数据接收处理,还重载了连接的建立和断开事件。
class ConfigServer(basic.LineReceiver):
def __init__(self):
pass #by gashero
def dataReceived(self,data):
pass
def lineReceived(self,line):
pass
def connectionMade(self):
pass
def connectionLost(self,reason):
pass
·工厂
继承了一个服务器工厂,
class ConfigServerFactory(protocol.ServerFactory):
protocol=ConfigServer
def __init__(self):
pass
def startFactory(self):
pass
def stopFactory(self):
pass
def buildProtocol(self,addr):
protocol.ServerFactory.buildProtocol(self,addr)
pass
·设置日志
from twisted.python import log
import sys
log.startLogging(sys.stdout)
·启动服务器
from twisted.internet import reactor
reactor.listenTCP(8080,ConfigServerFactory(),timeout=10)
reactor.run()
三、其他常用方法
·发送数据,在协议对象的方法中
self.transport.write(data)
·关闭连接
self.transport.loseConnection()
·获取连接信息
self.transport.getPeer()
self.transport.getHost()