Python游戏服务器中的TCP套接字

0 投票
1 回答
2144 浏览
提问于 2025-04-17 09:41

我打算做一个Python游戏服务器,但我不知道怎么设置。

我遇到的问题是,我需要服务器监听连接(用socket.socket.accept()?),但是这个操作会让代码停在那里,直到有连接进来,这样服务器在等待的时候就不能做其他事情了。

多线程是解决这个问题的方法吗?

另一个问题是,每个玩家应该在游戏开始时连接上,并保持连接直到游戏结束,还是应该每秒都建立连接来发送和接收数据。

1 个回答

2

没错,socket.accept() 是设计成会阻塞的,也就是说它会一直等着,直到有新的连接进来。要在后台处理连接,可以看看 SocketServer.ThreadingMixIn 这个例子。

http://docs.python.org/library/socketserver.html#asynchronous-mixins

撰写回答