一个简单的Twisted框架应用

来源:互联网 发布:mac上如何编辑pdf 编辑:程序博客网 时间:2024/05/18 03:35

简单的Twisted应用程序:
安装Twisted库
下载对应python版本的Twisted-wheel文件
运行命令行,进入文件目录,pip install 带文件后缀的文件全名

Twisted Reactor TCP服务器:

from twisted.internet import protocol, reactor
from time import ctime

PORT = 21567

class TSServProtocol(protocol.Protocol):
def connettionMade(self):
clnt = self.clnt = self.transport.getPeer().host
print(‘…connected from:’, clnt)

def dataReceived(self, data):
self.transport.write(‘[{0}]{1}’.format(ctime(), data).encode())

factory = protocol.Factory()
factory.protocol = TSServProtocol
print(‘waiting for connection…’)
reactor.listenTCP(PORT, factory)
reactor.run()

Twisted Reactor TCP客户端:

from twisted.internet import protocol, reactor

HOST = ‘localhost’
PORT = 21567

class TSClntProtocol(protocol.Protocol):
def sendData(self):
data = input(‘>’)
if data:
print(‘…sending {0}…’.format(data))
self.transport.write(data.encode())
else:
self.transport.loseConnection()

def connectionMade(self):
self.sendData()

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

class TSClntFactory(protocol.ClientFactory):
protocol = TSClntProtocol
clientConnectionLost = clientConnectionFailed = lambda self, connector, reason: reactor.stop()

reactor.connectTCP(HOST, PORT, TSClntFactory())
reactor.run()

执行TCP服务器与客户端可以成功展示输出,服务器端输出用户主机地址,客户端输出服务器端返回的内容。