【脚本语言系列】关于Python网络通讯Twisted网络框架,你需要知道的事

时间:2022-12-09 15:39:12

【脚本语言系列】关于Python网络通讯Twisted网络框架,你需要知道的事

如何使用Twisted框架

实现简单的服务器端

# -*- coding:utf-8 -*-
from twisted.internet import protocol, reactor, endpoints

class Echo(protocol.Protocol):
    def dataReceived(self, data):
        self.transport.write(data)

class EchoFactory(protocol.Factory):
    def buildProtocol(self, addr):
        return Echo()

endpoints.serverFromString(reactor, "tcp:1234").listen(EchoFactory())
reactor.run()
# -*- coding:utf-8 -*-
from twisted.internet import reactor
from twisted.internet.protocal import Protocol, Factory

class SimpleServer(Protocol):
    def connectionMade(self):
        print "Get connection from", self.transport.client

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

    def dataReceive(self, data):
        print data

factory = Factory()
factory.protocol = SimpleServer

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

什么是Twisted框架

Twisted是一个面向对象,基于事件驱动的*通讯框架,类似ACE(Adaptive Communication Environment,自适应网络通讯环境)网络框架。Twisted适合用来编写服务器端的应用程序。

为何使用Twisted框架

为了便于编写异步通讯的程序,可以使用Twisted框架。
区别于使用轮询的方案来处理异步通讯传输时的连接,Twisted采用的是一种事件驱动的方式。