Python游戏服务器中的TCP套接字
我打算做一个Python游戏服务器,但我不知道怎么设置。
我遇到的问题是,我需要服务器监听连接(用socket.socket.accept()
?),但是这个操作会让代码停在那里,直到有连接进来,这样服务器在等待的时候就不能做其他事情了。
多线程是解决这个问题的方法吗?
另一个问题是,每个玩家应该在游戏开始时连接上,并保持连接直到游戏结束,还是应该每秒都建立连接来发送和接收数据。
1 个回答
2
没错,socket.accept()
是设计成会阻塞的,也就是说它会一直等着,直到有新的连接进来。要在后台处理连接,可以看看 SocketServer.ThreadingMixIn
这个例子。
http://docs.python.org/library/socketserver.html#asynchronous-mixins