Twisted
模块提供了很方便的多任务通信。通过创建协议类来实现。
#
客户端
#!/usr/bin/python
#coding=utf-8
from twisted.internet import protocol,reactor
import sys
host=''
port=int(sys.argv[1])
class TSClntProtocal(protocol.Protocol):
def sendData(self):
data=raw_input('>')
if data:
print "...sending %s..."%data
self.transport.write(data)
else:
self.transport.loseConnection()
def connectionMade(self):
self.sendData()
print 'connectionMade'
def dataReceived(self,data):
print data
self.sendData()
print 'dataReceived'
class TSClntFactory(protocol.ClientFactory):
protocol=TSClntProtocal
clientConnectLost=clientConnectionFailed=lambda self,connector,reason:reactor.stop()
reactor.connectTCP(host,port,TSClntFactory())
reactor.run()
#
服务器端
#!/usr/bin/python
#coding=utf-8
from twisted.internet import protocol,reactor
from time import ctime
import sys