Twisted UDP 服务器 - 守护进程?

发布于 2024-09-27 21:42:44 字数 640 浏览 7 评论 0原文

我有以下使用 Twisted 的 UDP 服务器:

# 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 服务器。

任何方向将不胜感激。

I have the following UDP server using 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()

I would like to be able to daemonize this, so from what I have read I should be doing something with a .tac file that I can start with "twistd -y my_udp_server_file.tac" - the problem is I can't find any documentation on how to do this with this kind of setup. All I can find is examples on how to daemonize simple TCP echo servers (with a .tac file, that is) - I need a multi-threaded UDP server like the one I have.

Any direction would be greatly appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

热情消退 2024-10-04 21:42:44

试试这个:

import twisted.application
application = twisted.application.service.Application("Scotty's UDP server")
twisted.application.internet.UDPServer(PORT, BaseThreadedUDPServer()).setServiceParent(application)

Try this:

import twisted.application
application = twisted.application.service.Application("Scotty's UDP server")
twisted.application.internet.UDPServer(PORT, BaseThreadedUDPServer()).setServiceParent(application)
柠檬 2024-10-04 21:42:44

twistd 中的守护程序代码并不关心您提供的是 UDP 还是 TCP。守护 UDP 服务器的方式与守护 TCP 服务器的方式相同。您应该能够使用 TCP 回显服务器作为示例,为 UDP 服务器编写 .tac 文件。

The daemonization code in twistd doesn't care if you're serving up UDP or TCP. The way you daemonize a UDP server is identical to the way you daemonize a TCP server. You should be able to use the TCP echo server as an example to write a .tac file for your UDP server.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文