Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何允许通过套接字同时发送消息?_Python_Networking - Fatal编程技术网

Python 如何允许通过套接字同时发送消息?

Python 如何允许通过套接字同时发送消息?,python,networking,Python,Networking,我正在做一个游戏(冒险)。我已经完成了设置,所以不需要我完全重新设计网络的解决方案更可取。问题是我已经进入了主游戏,我需要允许多个用户同时发送消息。一般的想法是,当一个玩家轮到他们时,另一个玩家可以发送一条没收信息,并且仍然可以退出游戏而不会使整个服务器崩溃。有没有办法做到这一点,可以使用线程吗?没有理由在一个连接上阻塞主线程。 当建立连接时,您需要一个侦听线程。后台线程处理与客户端的通信。 您确实需要维护防弹状态机,以便客户端知道在任何给定状态下可以发送的适当消息,服务器需要知道在任何给定状态

我正在做一个游戏(冒险)。我已经完成了设置,所以不需要我完全重新设计网络的解决方案更可取。问题是我已经进入了主游戏,我需要允许多个用户同时发送消息。一般的想法是,当一个玩家轮到他们时,另一个玩家可以发送一条没收信息,并且仍然可以退出游戏而不会使整个服务器崩溃。有没有办法做到这一点,可以使用线程吗?

没有理由在一个连接上阻塞主线程。
当建立连接时,您需要一个侦听线程。后台线程处理与客户端的通信。

您确实需要维护防弹状态机,以便客户端知道在任何给定状态下可以发送的适当消息,服务器需要知道在任何给定状态下可以处理哪些有效消息。 搜索stackoverflow,您会发现许多示例,例如:

服务器-客户端模式:任何连接到服务器的客户端都可以自由断开连接,而不会影响其他客户端。是的,这涉及到线程。还需要服务器套接字。如果您开始使用线程套接字,我建议您查看该模块。如果您使用TCP,则不存在通过套接字同时发送消息的情况。我以前在此类项目中使用过Tornado。它是一个异步http服务器,也可以处理WebSocket。您甚至可以将SockJS用作不支持websockets的浏览器的兼容层。有关Python的更多信息,请查看此处: