Hi,

 

I’m trying to make a server that listens to one TCP socket for commands and then starts listening to more or less UDP sockets for data depending on the commands. The UDP data shall then be forwarded to one or more outgoing UDP ports.

 

For example, here are some commands with explanations:

 

addChannel 10000                             should make the server listening to UDP port 10000

addChannel 10002                             should make the server listening to UDP port 10002

addConnection 10000 10.0.0.2:5000    start forwarding the packet from UDP port 10000 to port 5000 on another machine

addConnection 10000 10.0.0.3:5002    start forwarding the packet from UDP port 10000 to port 5002 on yet another machine

delConnection  10000 10.0.0.2:5000    stop forwarding packets to the first guy

delConnection  10000 10.0.0.3:5002    stop forwarding packets to the second guy

delChannel      10000                         stop listening to port 10000

 

I’ve been making some rather advanced servers in twisted, but with fixed ports. How can I deal with this type of dynamic port bindings?

 

For adding a port to listen to: reactor.listenUDP(10000,prot) is working, but how do I stop listening to a port an unbind it? I’ve found something called unlistenUDP but it seems to be deprecated?

 

Alternatively, I could start up a service , like

u = internet.services.UDPServer(10000,UdpProtocol())

but how do I stop this particular service without stopping all others?

 

Any suggestions are welcome.

 

Regards,

Torbjörn Einarsson1