2017-06-21 4 views
0

J'ai une implémentation en python d'un serveur 'MyServer', qui se connecte à un réseau sur UDP et hérite ainsi de DatagramProtocol. Ce serveur ne peut se connecter au réseau qu'en utilisant UDP (ceci ne peut pas être modifié en raison des spécifications du réseau). Le serveur fonctionne comme une application de la manière suivante:Twisted - serveur UDP et TCP ensemble

udp_server = internet.UDPServer(port, server) 
application = service.Application("MyServer") 
udp_server.setServiceParent(application) 

J'ai aussi la mise en œuvre d'un serveur POP3. Toutefois, ce serveur est connecté par le client POP3 via le TCP. Je voudrais permettre à mon serveur d'exécuter également le serveur POP3, quelque chose comme:

class MyServer(DatagramProtocol): 
    def __init__(self, params): 
    self.POP3server = POP3Server(params) #my implementation of POP3 server 

TCP et UDP sont des protocoles totalement différents, mais peut-être il y a possibilité ou une solution délicate pour permettre une connexion TCP Pop3Server exécuté dans le cadre de un serveur UDP?

+0

Je ne comprends pas. Vous dites que vous devez utiliser UDP et pourtant vous dites qu'un client utilise TCP. Ou dites-vous simplement que vous voulez exécuter deux serveurs? Il n'y a pas de problème avec ça. Quoi qu'il en soit, ces deux protocoles ne vont pas ensemble. – freakish

Répondre

1
from twisted.application.internet import UDPServer, TCPServer 

... 
UDPServer(port, udp_server).setServiceParent(application) 
TCPServer(port, tcp_server).setServiceParent(application)