[Twisted-Python] Server/Client

Delgado, Edgardo CIV NAVAIR 4.1.4.3 edgardo.delgado at navy.mil
Wed Jun 20 13:42:17 MDT 2007


Here's the code:

from twisted.internet.protocol import ServerFactory, ClientFactory,
Protocol, ClientCreator
from twisted.protocols.basic import LineReceiver
from twisted.application.service import Service, Application,
IServiceCollection
from twisted.application.internet import TCPServer, TCPClient
from twisted.internet.stdio import StandardIO
from twisted.internet import reactor
import re

class DnLinkProtocol(LineReceiver):
    
    def connectionMade(self):
        self.sendLine("Connected from: " + "host " +
                             str(self.transport.getPeer().host) + " " +
                             "port " +
                             str(self.transport.getPeer().port) + '\n')
        
    def lineReceived(self, line):
        self.sendLine("DnLink echo: " + line + '\n')

class DSPEProtocol(LineReceiver):
    
    def connectionMade(self):
        self.sendLine("Connected from: " + "host " +
                             str(self.transport.getPeer().host) + " " +
                             "port " +
                             str(self.transport.getPeer().port) + '\n')
    
    def lineReceived(self, line):
        self.sendLine("DSPE echo: " + line + '\n')

class PAPSExecService(Service):
    
    def getDnLinkInFactory(self):
        f = ServerFactory()
        f.protocol = DnLinkProtocol
        f.startService = self.startService
        return f
    
    def getDSPEInFactory(self):
        f = ServerFactory()
        f.protocol = DSPEProtocol
        f.startService = self.startService
        return f
    
application = Application('PAPSExec')
f = PAPSExecService()
serviceCollection = IServiceCollection(application)
TCPServer(9595,
f.getDnLinkInFactory()).setServiceParent(serviceCollection)
TCPServer(8585,
f.getDSPEInFactory()).setServiceParent(serviceCollection) 


I would like that, for example, when data is received in port 9595 it
will forward the data to another server in port xxxx.
Where would I create a TPC Client connection?
Where would I send the message?

Edgar

-----Original Message-----
From: twisted-python-bounces at twistedmatrix.com
[mailto:twisted-python-bounces at twistedmatrix.com] On Behalf Of Christian
Simms
Sent: Wednesday, June 20, 2007 11:01 AM
To: Twisted general discussion
Subject: Re: [Twisted-Python] Server/Client

On 6/20/07, Delgado, Edgardo CIV NAVAIR 4.1.4.3
<edgardo.delgado at navy.mil> wrote:

	I would like to build a server that when it gets a message on a
specific
	port it will "forward" that message to another port. 
	I.e. "Server1" listens on port 10000. When it gets data on port
10000 it
	will forward the data to "Server2" listening on port 15000.


Assuming you're using TCP, you could just create a server listening on a
port using reactor.listenTCP(port, factory) as detailed here
<http://twistedmatrix.com/projects/core/documentation/howto/servers.html
>  and when you receive a message you would create a client using
reactor.connectTCP(host, port, factory) as detailed here
<http://twistedmatrix.com/projects/core/documentation/howto/clients.html
>  to then send the message.

Cheers,
Christian





More information about the Twisted-Python mailing list