Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5096727
  • 博文数量: 921
  • 博客积分: 16037
  • 博客等级: 上将
  • 技术积分: 8469
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-05 02:08
文章分类

全部博文(921)

文章存档

2020年(1)

2019年(3)

2018年(3)

2017年(6)

2016年(47)

2015年(72)

2014年(25)

2013年(72)

2012年(125)

2011年(182)

2010年(42)

2009年(14)

2008年(85)

2007年(89)

2006年(155)

分类: 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()

阅读(1309) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~