WEB开发网
开发学院软件开发Python 使用Twisted建立你的服务器 阅读

使用Twisted建立你的服务器

 2010-09-22 11:15:34 来源:WEB开发网   
核心提示: 这样在用户连接建立时向用户发送一个欢迎消息,然后就断开了与客户机的连接,使用Twisted建立你的服务器(3),下面再看一个实现更多事件的协议实现:Toggle line numbers 1 from twisted.internet.protocol import Protocol 2

这样在用户连接建立时向用户发送一个欢迎消息,然后就断开了与客户机的连接。下面再看一个实现更多事件的协议实现:  

 Toggle  line  numbers   
    1  from  twisted.internet.protocol  import  Protocol  
    2   
    3  class  Echo(Protocol):  
    4   
    5      def  connectionMade(self):  
    6          self.factory.numProtocols  =  self.factory.numProtocols+1  
    7          if  self.factory.numProtocols  >  100:  
    8              self.transport.write("Too  many  connections,  try  later")  
    9              self.transport.loseConnection()  
   10   
   11      def  connectionLost(self,  reason):  
   12          self.factory.numProtocols  =  self.factory.numProtocols-1  
   13   
   14      def  dataReceived(self,  data):  
   15          self.transport.write(data) 

这里不但向应了三个事件:连接初始化、断开连接、接收到数据。而且还使用了factory来存储一个持久的数据(当前并发的用户连接数)。   

使用protocol  做完一个rptocol的开发如何让它放入一个可以测试的环境中试验呢?以下是一个最为简单的办法进行测试:  

 Toggle  line  numbers   
    1  from  twisted.internet.protocol  import  Protocol,  Factory  
    2  from  twisted.internet  import  reactor  
    3   
    4  class  HelloHD(Protocol):  
    5   
    6      def  connectionMade(self):  
    7          self.transport.write("Hello  This  is  HD's  Test  protocolrn")  
    8          self.transport.loseConnection()  
    9   
   10   
   11  #  下面就是施展Twisted神奇的代码了  
   12  factory  =  Factory()  
   13  factory.protocol  =  HelloHD  
   14   
   15  #  侦听运行于8025端口,最好是一个大于1024的端口  
   16  reactor.listenTCP(8025,  factory)  
   17  reactor.run() 
 最后的六行代码就可以将你的protocol运行起来,成为一个可测试的daemon运行起来。测试的客户端可以使用你的telnet,用telnet登录到你的服务器的8025端口就可以进行最初级的测试了。这几行代码只需要看看Twisted的文档就能明白它的含义了。之前的reactor的说明中也非常细的说了你可以有的选择和运行方法。

上一页  1 2 3 

Tags:使用 Twisted 建立

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接