python手记-twisted(3)

来源:互联网 发布:手机淘宝认证人脸验证 编辑:程序博客网 时间:2024/04/23 19:54
from twisted.internet.protocol import Protocolfrom twisted.internet import reactorfrom twisted.internet.protocol import Factoryfrom twisted.internet.endpoints import TCP4ServerEndpointclass Echo(Protocol):            def __init__(self,factory):         self.factory=factory     def connectionMade(self):         self.factory.numProtocols=self.factory.numProtocols+1         self.transport.write("welcome!\nthere are currently %d open connections.\n"%(self.factory.numProtocols,))     def dataReceived(self,data):         mydata=data.strip() if mydata!="quit" and  mydata!="quit\r\n" and mydata!="quit\r":               self.transport.write(data)         else:              self.transport.write("byebye\n")              self.transport.numProtocols=self.factory.numProtocols-1              self.transport.loseConnection()     def connectionLost(self, reason):         self.factory.numProtocols = self.factory.numProtocols - 1class EchoFactory(Factory):     numProtocols=0     def __init__(self):         self.myfactory=self     def buildProtocol(self,addr):         return Echo(self.myfactory)    endpoint=TCP4ServerEndpoint(reactor,8001)endpoint.listen(EchoFactory())reactor.run()


输入quit退出连接,统计连接数量。

buildProtocol方法的默认行为是调用protocol属性产生一个Protocol实例,设置factory属性指向factory

本博客所有内容是原创,如果转载请注明来源

http://blog.csdn.net/myhaspl/


$ telnet 120.55.*.* 8001

Trying 120.55.*.*...

Connected to 120.55.*.*.

Escape character is '^]'.

welcome!

there are currently 1 open connections.

hello

hello

world

world

myhaspl

myhaspl

quit

byebye

Connection closed by foreign host.

$ telnet 120.55.*.* 8001

Trying 120.55.*.*...

Connected to 120.55.*.*

Escape character is '^]'.

welcome!

there are currently 1 open connections.


$ telnet 120.55.*.* 8001

Trying 120.55.*.*...

Connected to 120.55.*.*.

Escape character is '^]'.

welcome!

there are currently 2 open connections.

lll

lll

 


0 0
原创粉丝点击