Twisted

来自开放百科 - 灰狐
(版本间的差异)
跳转到: 导航, 搜索
第37行: 第37行:
 
*[[Twisted Runner]]: Process management, including an inetd server
 
*[[Twisted Runner]]: Process management, including an inetd server
 
http://twistedmatrix.com/projects/
 
http://twistedmatrix.com/projects/
==Writing a TCP App==
+
==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  
 
TCPServer.py TCPClient.py  
 
Services which allow you to make connections and listen for connections on TCP ports.  
 
Services which allow you to make connections and listen for connections on TCP ports.  
第43行: 第73行:
 
  connectTCP
 
  connectTCP
 
http://twistedmatrix.com/projects/core/documentation/howto/application.html
 
http://twistedmatrix.com/projects/core/documentation/howto/application.html
===Writing TCP server===
+
 
 
Server: 192.168.1.3 , Debian 3.1
 
Server: 192.168.1.3 , Debian 3.1
 
===Writing TCP client===
 
===Writing TCP client===

2007年2月22日 (四) 13:31的版本

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

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

变换
操作
导航
工具箱