(转) Twisted :第十一部分 改进诗歌下载服务器
诗歌下载服务器 到目前为止,我们已经学习了大量关于诗歌下载客户端的 Twisted 的知识,接下来,我们使用 Twisted 重新实现我们的服务器端。利益于 Twisted 的抽象机制,接下来你会发现我们前面已经几乎全部学习到这部分知识了。其实现源码在 twisted-server-1/fastpoetry.py 中 。之所以称其为 fastpoetry 是因为其并没有任何延迟的传输诗歌。注意到,其代码量比客户端少多了。 让我们一部分一部分地来看服务端的实现,首先是 poetryProtocol : class PoetryProtocol(Protocol): def connectionMade(self): self.transport.write(self.factory.poem) self.transport.loseConnection() 如同客户端的实现,服务器端使用 Protocol 来管理连接(在这里,连接是由客户端发起的)。这里的 Protocol 实现了我们的诗歌下载逻辑的服务器端。由于我们协议逻辑处理的是单向的,服务器端的 Protocol 只负责发送数据。如果你访问服务器端,协议请求服务器在连接建立后立即发送诗歌,因此我实现了 connectionMade 方法,其会在 Protocol 中创建一个连接时被激活执行。 这个方法告诉 Transport