Twisted is easy
-
Upload
moshe-zadka -
Category
Technology
-
view
1.504 -
download
0
description
Transcript of Twisted is easy
![Page 1: Twisted is easy](https://reader035.fdocuments.in/reader035/viewer/2022073101/5597d7c21a28abb0468b4641/html5/thumbnails/1.jpg)
Twisted is Easy!
Moshe Zadka
![Page 2: Twisted is easy](https://reader035.fdocuments.in/reader035/viewer/2022073101/5597d7c21a28abb0468b4641/html5/thumbnails/2.jpg)
Do Nothing
from twisted.internet import reactor
reactor.run()
![Page 3: Twisted is easy](https://reader035.fdocuments.in/reader035/viewer/2022073101/5597d7c21a28abb0468b4641/html5/thumbnails/3.jpg)
Protocol Parsing
from twisted.internet import reactor, protocol
class Echo(protocol.Protocol):
def dataReceived(self, data):
self.transport.write(data)
factory = protocol.Factory()
factory.protocol = Echo
reactor.listenTCP(1033, factory)
reactor.run()
![Page 4: Twisted is easy](https://reader035.fdocuments.in/reader035/viewer/2022073101/5597d7c21a28abb0468b4641/html5/thumbnails/4.jpg)
Web Development
from twisted.internet import reactor
from twisted.web import resource, server
class Resource(resource.Resource):
isLeaf = True
users = 0
def render_GET(self, request):
self.users += 1
return "Welcome user number %d" % self.users
reactor.listenTCP(1080, server.Site(Resource()))
reactor.run()
![Page 5: Twisted is easy](https://reader035.fdocuments.in/reader035/viewer/2022073101/5597d7c21a28abb0468b4641/html5/thumbnails/5.jpg)
Multi-protocol Servers (Classes)
from twisted.internet import reactor, protocol
from twisted.web import resource, server
class Counter(object):
count = 0
def add(self, number):
self.count += number
class ByteCount(protocol.Protocol):
def dataReceived(self, data):
self.factory.counter.add(len(data))
class Resource(resource.Resource):
isLeaf = True
counter = None
def render_GET(self, request):
return "Received %d bytes" % self.counter.count
![Page 6: Twisted is easy](https://reader035.fdocuments.in/reader035/viewer/2022073101/5597d7c21a28abb0468b4641/html5/thumbnails/6.jpg)
Multi-protocol Servers (Set-up)
factory = protocol.Factory()
factory.protocol = ByteCount
factory.counter = Counter()
resource = Resource()
resource.counter = factory.counter
reactor.listenTCP(1033, factory)
reactor.listenTCP(1080, server.Site(resource))
reactor.run()