欢迎来到天天文库
浏览记录
ID:8818739
大小:14.50 KB
页数:2页
时间:2018-04-08
《python-twisted模块代码实例》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、Twisted模块提供了很方便的多任务通信。通过创建协议类来实现。#客户端#!/usr/bin/python#coding=utf-8fromtwisted.internetimportprotocol,reactorimportsyshost=''port=int(sys.argv[1])classTSClntProtocal(protocol.Protocol):defsendData(self):data=raw_input('>')ifdata:print"...sending%s..."%data
2、self.transport.write(data)else:self.transport.loseConnection()defconnectionMade(self):self.sendData()print'connectionMade'defdataReceived(self,data):printdataself.sendData()print'dataReceived'classTSClntFactory(protocol.ClientFactory):protocol=TSClntProtoc
3、alclientConnectLost=clientConnectionFailed=lambdaself,connector,reason:reactor.stop()reactor.connectTCP(host,port,TSClntFactory())reactor.run()#服务器端#!/usr/bin/python#coding=utf-8fromtwisted.internetimportprotocol,reactorfromtimeimportctimeimportsysport=int
4、(sys.argv[1])classTSServProtocol(protocol.Protocol):defconnectionMade(self):clnt=self.clnt=self.transport.getPeer().hostprint"connectfrom:",clntdefdataReceived(self,data):print"hello"self.transport.write('[%s]%s'%(ctime(),data))factory=protocol.Factory()fa
5、ctory.protocol=TSServProtocolprint"waitingforconnection..."reactor.listenTCP(port,factory)reactor.run()
此文档下载收益归作者所有