2017-06-21 6 views
0

Ich habe eine Python-Implementierung eines Servers 'MyServer', die über UDP an ein Netzwerk anschließt und somit von DatagramProtocol erbt. Dieser Server kann nur mit UDP eine Verbindung zum Netzwerk herstellen (dies kann aufgrund der Netzwerkspezifikation nicht geändert werden). Der Server läuft als Anwendung auf folgende Weise:Twisted - UDP und TCP Server zusammen

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

ich auch die Implementierung eines POP3 Server. Dieser Server ist jedoch über den POP3-Client über die TCP verbunden. Ich möchte meinen Server ermöglichen, auch den POP3-Server zu laufen, so etwas wie:

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

TCP und UDP sind völlig unterschiedliche Protokolle, aber vielleicht gibt es die Möglichkeit oder eine schwierige Lösung ein TCP Pop3Server laufen als Teil zu ermöglichen, ein UDP Server?

+0

Ich verstehe es nicht. Sie sagen, dass Sie UDP verwenden müssen und dennoch sagen Sie, dass ein Client TCP verwendet. Oder sagen Sie einfach, dass Sie zwei Server betreiben wollen? Es gibt kein Problem damit. Jedenfalls passen diese beiden Protokolle nicht zusammen. – freakish

Antwort

1
from twisted.application.internet import UDPServer, TCPServer 

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