自動接続サーバ
2100 ワード
# -*- coding:cp936 -*-
#!/usr/bin/env python
"""
startConnecting
buildProtocol , Protocol
clientConnectionLost
clientConnectionFailed
, ;
, ;
"""
from twisted.internet.protocol import Protocol
from twisted.internet.protocol import ClientFactory
from twisted.internet.protocol import ReconnectingClientFactory
from twisted.internet import reactor
class EchoClient(Protocol):
#
def connectionMade(self):
for i in range(1,100):
print 'send---',i
self.transport.write("%s
"%i)
#
def dataReceived(self, data):
print "Received---", data
# #
# def connectionLost(self,reason):
# print "connection lost",reason
class EchoClientFactory(ClientFactory):
def startedConnecting(self,connector):
print("Start to connect")
def buildProtocol(self,addr):
print("build protocol")
return EchoClient()
def clientConnectionLost(self,connector,reason):
print("client connection lost" + str(reason))
# ,
ReconnectingClientFactory.clientConnectionLost(self,connector,reason)
def clientConnectionFailed(self,connector,reason):
print("client connection failed:" + str(reason))
# ,
ReconnectingClientFactory.clientConnectionFailed(self,connector,reason)
reactor.connectTCP("localhost",8001,EchoClientFactory())
reactor.run()
#
from twisted.internet.protocol import Protocol,Factory
from twisted.internet import reactor
class Echo(Protocol):
def dataReceived(self, data):
# As soon as any data is received, write it back
print self.transport.client
print data
self.transport.write(data)
print '----------'
class EchoFactory(Factory):
def buildProtocol(self, addr):
return Echo()
reactor.listenTCP(8001, EchoFactory())
reactor.run()