2017-06-21 85 views
0

我有一個服務器'MyServer'的python實現,它通過UDP連接到網絡,因此從DatagramProtocol繼承。此服務器只能使用UDP連接到網絡(由於網絡規範,這不能更改)。服務器以下列方式作爲應用程序運行:Twisted - UDP和TCP服務器在一起

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

我還有一個POP3服務器的實施。但是,此服務器通過POP3客戶端通過TCP連接。我想,讓我的服務器也運行POP3服務器,是這樣的:

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

TCP和UDP是完全不同的協議,但也許有可能還是一個棘手的解決方案,以允許TCP POP3Server運行的一部分一個UDP服務器?

+0

我不明白。你說你必須使用UDP,但你說客戶端使用TCP。還是你只是說你想運行兩臺服務器?這沒有問題。無論如何,這兩個協議不會在一起。 – freakish

回答

1
from twisted.application.internet import UDPServer, TCPServer 

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