Скрученный UDP-сервер - демонизировать? - PullRequest
3 голосов
/ 14 октября 2010

У меня есть следующий UDP-сервер, использующий Twisted:

# init the thread capability
threadable.init(1)

# set the thread pool size
reactor.suggestThreadPoolSize(32)

class BaseThreadedUDPServer(DatagramProtocol):
    def datagramReceived(self, datagram, (host, port)):
        #do some stuff here...

def main():
    reactor.listenUDP(PORT, BaseThreadedUDPServer())
    reactor.run()

if __name__ == '__main__':
    main()

Я хотел бы иметь возможность демонизировать это, поэтому из того, что я прочитал, я должен сделать что-то с файлом .tac, который я могу начать с "twistd -y my_udp_server_file.tac" - проблема в том, что я не могу найдите любую документацию о том, как сделать это с помощью такой установки. Все, что я могу найти, это примеры того, как демонизировать простые эхо-серверы TCP (то есть с файлом .tac) - мне нужен многопоточный UDP-сервер, такой как у меня.

Любое направление будет с благодарностью.

Ответы [ 2 ]

3 голосов
/ 17 октября 2010

Попробуйте это:

import twisted.application
application = twisted.application.service.Application("Scotty's UDP server")
twisted.application.internet.UDPServer(PORT, BaseThreadedUDPServer()).setServiceParent(application)
3 голосов
/ 14 октября 2010

Код демонизации в twistd не заботит, обслуживаете ли вы UDP или TCP.Способ, которым вы демонизируете сервер UDP, идентичен тому, как вы демонизируете сервер TCP.Вы должны иметь возможность использовать эхо-сервер TCP в качестве примера для записи файла .tac для вашего UDP-сервера.

...