[Twisted-Python] How to dispatch message to different servers

Benjamin BERTRAND beenje at gmail.com
Thu Feb 28 16:59:40 EST 2013


I have to replace a piece of software that sniffs the traffic on one interface. It gets different messages that are each associated to a specific emitter.
On the same machine, one server is started for each emitter (on a different port).
And the application is just supposed to use the proper server to send the messages captured (to a client on another machine).

Not sure if it's clear, but basically if I have 2 emitters A and B, I'll start 2 servers (a and b).
My sniffer will get messages A1, A2, B1, B2, B3...
I have to pass messages A1, A2 to server a, that will just send them to the client (if it is connected of course).
And B1, B2, B3 to server b.
I don't need any buffering. If no client is connected, messages captured are just discarded.

To sniff the network, I want to use pylibpcap or pcapy.
I found this example to make it work with twisted: http://dound.com/2009/09/integrating-twisted-with-a-pcap-based-python-packet-sniffer/

Starting several servers that use the same protocol is not a problem.
But how do I pass the messages captured to the right server?
How do I make the link between the function sniffing the network and the servers?



More information about the Twisted-Python mailing list