Twisted - UDP и TCP сервер вместе
У меня есть реализация Python сервераMyServer
', которая подключается к сети через UDP
и, следовательно, наследует от DatagramProtocol
, Этот сервер может подключаться к сети только по протоколу UDP (это нельзя изменить из-за спецификации сети). Сервер работает как приложение следующим образом:
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-сервера?
1 ответ
Решение
from twisted.application.internet import UDPServer, TCPServer
...
UDPServer(port, udp_server).setServiceParent(application)
TCPServer(port, tcp_server).setServiceParent(application)