我打算製作一個Python遊戲服務器,但我看不到如何設置它。Python遊戲服務器中的TCP套接字
我遇到的問題是我需要服務器來偵聽連接(使用socket.socket.accept()
?),但它會掛起代碼直到建立連接,這意味着服務器在等待時不能執行其他任何操作。
是多線程解決方案嗎?
另一個問題是每個客戶端應該在遊戲開始時連接並保持連接持續時間,或者如果應該每秒都進行連接以發送/接收數據。
我打算製作一個Python遊戲服務器,但我看不到如何設置它。Python遊戲服務器中的TCP套接字
我遇到的問題是我需要服務器來偵聽連接(使用socket.socket.accept()
?),但它會掛起代碼直到建立連接,這意味着服務器在等待時不能執行其他任何操作。
是多線程解決方案嗎?
另一個問題是每個客戶端應該在遊戲開始時連接並保持連接持續時間,或者如果應該每秒都進行連接以發送/接收數據。
正確,socket.accept()
塊設計。例如,要在後臺處理連接,請參閱SocketServer.ThreadingMixIn
。
http://docs.python.org/library/socketserver.html#asynchronous-mixins
這很有幫助,謝謝 – UbunTom 2012-01-06 19:22:17
還有什麼你想要它做的,那將不是由客戶端請求啓動? – 2012-01-06 18:11:26
如果您需要異步網絡I/O,請查看Twisted框架。 – 9000 2012-01-06 19:23:51