python - Python 游戏中的非阻塞 UDP 服务器?

标签 python sockets udp twisted pygame

我正在用 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/

相关文章:

python - 如何从请求响应中提取 HTTP 错误文本?

python - scrapy 和 MySQL 的错误处理

java - 无法将一个类的对象访问到另一个类中

c++ - Boost Asio UDP 服务器设置套接字以监听指定 IP

c# - C#发送UDP包

python - lxml xpath 如何处理xml实体

python - DecisionTreeClassifier拟合方法错误(scikit learn)

c# - 如何使用C#插槽连接两台单独的PC

c - 当 BSD 套接字报告已收到 RST 时,如果尚未读取所有内容

c - recvfrom() 未接收完整缓冲区