我正在用 Python 制作一款 Action 游戏。它必须支持至少 2 名玩家通过 Internet 一起玩。我选择了 UDP,因为它似乎是低延迟游戏的自然选择。我要使用客户端-服务器模型,我希望一个玩家主持游戏。这意味着一个玩家同时托管游戏(服务器)和运行游戏(客户端)。
我应该为此使用线程还是有其他方法?问题是 Python 文档说要使用 serve_forever 但我需要一个非阻塞解决方案,理想情况下我可以调用每个游戏循环。
最佳答案
我假设,根据您对“Python 文档说使用 serve_forever”的引用,您打算使用 SocketServer。该模块实现了同步( fork 或线程)服务器,您似乎正在寻找异步解决方案。
对于异步、非阻塞的解决方案,您可以查看 twisted http://twistedmatrix.com/trac/ (特别是 twisted.internet)。
或者,如果您需要非常具体的东西并且不介意编写事件循环,只需对套接字和其他资源使用轮询或选择...
关于python - Python 游戏中的非阻塞 UDP 服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10445978/