Python进阶 网络框架Twisted-编写Twisted服务器

预备知识:

1、框架(framework):框架是一组组件,内置了很多功能,可以进行纵向开发,框架中的内置功能可以用第三方库代替。框架的纵向开发区别于库(一些相关功能的模块的集合)和包的横向开发

2、Twisted是一个事件驱动的Python网络框架,通过Twisted可以实现事件处理程序。

3、工厂模式

 

Python进阶   网络框架Twisted-编写Twisted服务器

  Twisted采用的是基于事件的方法,所以程序的步骤:监听指定端口,然后实例化协议对象来处理连接,然后启动服务器

监听指定端口:

    1、调用模块reactor中的函数listenTCP

实例化对象处理连接的步骤:

    1、与客户端发起连接,具体实施:需要创建协议对象有新连接时该对象调用事件处理程序connectionMade;没有连接时或者连接中断时,调用事件处理函数connectionLost

    2、有数据到来,该对象调用处理程序,dataReceived接受来自客户端的数据使用对象self.transport,该对象调用方法write和调用属性client(包含客户端地址-主机名和端口)发送数据给客户端。

    3、与客户端断开连接(以及纵多其他的事件)

启动服务器:

    1、调用模块reactor中的函数run

 

from twisted.internet.protocol import Protocol, Factory
from twisted.internet import reactor


class SimpleLogger(Protocol):
    def connectionMade(self):
        print('connection from :', self.transport.client)

    def connectionLost(self, reason):
        print(self.transport.client, 'disconnected')

    def dataReceived(self, data):
        print(data)


factory = Factory()
factory.protocol = SimpleLogger

reactor.listenTCP(1234, factory)
reactor.run()

 

 

 

 

  

posted @ 2019-12-09 19:13  石斛  阅读(580)  评论(0编辑  收藏  举报