使用Twisted建立你的服务器
2010-09-22 11:15:34 来源:WEB开发网这样在用户连接建立时向用户发送一个欢迎消息,然后就断开了与客户机的连接。下面再看一个实现更多事件的协议实现:
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
最后的六行代码就可以将你的protocol运行起来,成为一个可测试的daemon运行起来。测试的客户端可以使用你的telnet,用telnet登录到你的服务器的8025端口就可以进行最初级的测试了。这几行代码只需要看看Twisted的文档就能明白它的含义了。之前的reactor的说明中也非常细的说了你可以有的选择和运行方法。
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()
- ››建立唯美图片特效,十个jQuery插件分享
- ››使用脚本恢复WinXP系统的用户登录密码
- ››使用phpMyadmin创建数据库及独立数据库帐号
- ››使用Zend Framework框架中的Zend_Mail模块发送邮件...
- ››使用cout标准输出如何控制小数点后位数
- ››使用nofollow标签做SEO的技巧
- ››使用 WebSphere Message Broker 的 WebSphere Tra...
- ››使用SQL Server事件探查器做应用程序的性能分析
- ››使用SQL Server事件探查器分析死锁原因
- ››使用纯文本文件打造WCF服务
- ››使用 Dojo 开发定制 Business Space 小部件,第 4...
- ››使用 ADDRESS 与 INDIRECT函数查询信息
更多精彩
赞助商链接