Python 如何使服务器侦听TCP和UDP?
我使用的是PythonTwisted,我有两个独立的服务器在工作,一个接收TCP,一个接收UDP,它们各自使用Python 如何使服务器侦听TCP和UDP?,python,tcp,udp,twisted,Python,Tcp,Udp,Twisted,我使用的是PythonTwisted,我有两个独立的服务器在工作,一个接收TCP,一个接收UDP,它们各自使用 reactor.listenTCP(PORT, factory) reactor.run() 及 它们都可以工作,但现在我想将它们合并到一个服务器中,接收TCP和UDP,但它们都使用变量reactor。反应堆不是扭曲的,不是我自己的。如果它是我自己的,我可以更改每个名字 谢谢大家! 在reactor.run()之前,您可以在启动时调用listenTCP和listenUDP,次数可以根
reactor.listenTCP(PORT, factory)
reactor.run()
及
它们都可以工作,但现在我想将它们合并到一个服务器中,接收TCP和UDP,但它们都使用变量reactor
。反应堆不是扭曲的,不是我自己的。如果它是我自己的,我可以更改每个名字
谢谢大家! 在reactor.run()之前,您可以在启动时调用listenTCP和listenUDP,次数可以根据需要而定
然后,您的回调将在适当的时间被适当的协议调用,您可以相应地处理它们。这只是对MarkR答案的重新表述,这是正确的,但我认为可能更清楚地说明这是如何工作的: 与您的建议不同,您的计划应该如下所示:
reactor.listenTCP(PORT, factory)
reactor.listenUDP(PORT, BaseThreadedUDPServer())
reactor.run()
将
reactor.run()
理解为“运行整个程序,然后退出,我完成了”是很有帮助的。每个程序只能运行一次反应器。但是,在运行它之前以及它运行时,您可以调用任意多个方法来侦听新协议或调用新的定时事件。BaseThreadEdupServer?这里真的需要线程吗?我认为这不必要地使问题复杂化。而且,在将来,发布一个完整的、可运行的程序,而不仅仅是一个片段,也会有所帮助。我的天,谢谢你。这就是我要找的。我确实有这个想法,我只是不知道你是否可以这样做,而我是twisted的新手,所以我不是很了解它。谢谢你的解释!:-)
reactor.listenTCP(PORT, factory)
reactor.listenUDP(PORT, BaseThreadedUDPServer())
reactor.run()