欢迎大家赞助一杯啤酒🍺 我们准备了下酒菜:Formal mathematics/Isabelle/ML, Formal verification/Coq/ACL2, C++/F#/Lisp

Twisted

来自开放百科 - 灰狐
2010年9月27日 (一) 05:57Allen (讨论 | 贡献)的版本

跳转到: 导航, 搜索
Wikipedia-35x35.png 您可以在Wikipedia上了解到此条目的英文信息 Twisted Thanks, Wikipedia.

Twisted is an event-driven networking framework written in Python and licensed under the MIT license.

High-Level Overview of Twisted

目录

Guide

http://twistedmatrix.com/trac/wiki/Downloads
wget http://tmrc.mit.edu/mirror/twisted/Twisted/2.5/Twisted-2.5.0.tar.bz2
bunzip2 Twisted-2.5.0.tar.bz2
tar xvf Twisted-2.5.0.tar
cd Twisted-2.5.0
cd zope.interface-3.3.0
python setup.py install
cd ..
python setup.py install
$ trial twisted // Trial is Twisted's testing framework.
>>> from twisted.web.client import getPage
>>> from twisted.internet import reactor
>>> def printContents(contents):
print "The Deferred has called printContents with the following contents:"
print contents
reactor.stop()
>>> deferred = getPage('http://www.huihoo.com/')
>>> deferred.addCallback(printContents)
<Deferred at 0xb9afd0>
>>> reactor.run()

Projects

  • Twisted: Asynchronous networking framework
  • Twisted Conch: An SSH and SFTP protocol implementation together with clients and servers
  • Twisted Web: An HTTP protocol implementation together with clients and servers
  • Twisted Web2: An HTTP/1.1 Server Framework
  • Twisted Mail: An SMTP, IMAP and POP protocol implementation together with clients and servers
  • Twisted Names: A DNS protocol implementation with client and server
  • Twisted News: An NNTP protocol implementation with client and server
  • Twisted Words: Chat and Instant Messaging
  • Twisted Lore: Documentation generator with HTML and LaTeX support
  • Twisted Flow: Generator based asynchronous result flows (unmaintained)
  • Twisted Pair: Low-level stuff (unmaintained)
  • Twisted Runner: Process management, including an inetd server

http://twistedmatrix.com/projects/

Writing Applicatons

Creating XML-RPC server

Server: touch twisted-xmlrpc.py

from twisted.web import xmlrpc, server
class Example(xmlrpc.XMLRPC):
    """An example object to be published."""
    def xmlrpc_echo(self, x):
        """Return all passed args."""
        return x
    def xmlrpc_add(self, a, b):
        """Return sum of arguments."""
        return a + b
if __name__ == '__main__':
    from twisted.internet import reactor
    r = Example()
    reactor.listenTCP(7080, server.Site(r))
    reactor.run(

python twisted-xmlrpc.py

Client: run client

>>> from twisted.web import xmlrpc, server
>>> import xmlrpclib
>>> s = xmlrpclib.Server('http://localhost:7080/')
>>> s.echo('huihoo')
'huihoo'
>>> s.add(1,2)
3

Writing TCP server

TCPServer.py TCPClient.py Services which allow you to make connections and listen for connections on TCP ports.

listenTCP
connectTCP

http://twistedmatrix.com/projects/core/documentation/howto/application.html

Server: 192.168.1.3 , Debian 3.1

Writing TCP client

Client: 192.168.1.2 , WinXP

Software that uses Twisted

  • BitTorrent - a peer-to-peer file sharing program.
  • BuildBot - a distributed building/testing framework.
  • Python Director - pure Python tcp load balancer.
  • Freevo - open-source home theatre and PVR PC platform.
  • NXLucene - a standalone multi-threaded Lucene-based text indexing server.
  • Zenoss - open source network/systems monitoring and management

More details: http://twistedmatrix.com/trac/wiki/ProjectsUsingTwisted

Links

分享您的观点
个人工具
名字空间

变换
操作
导航
工具箱