我一直在嘗試制作一個可以多人連接的服務器,但我一直卡在一個問題上。允許服務器在服務器主機仍然能夠輸入命令時偵聽客戶端。
running = True
while running:
command = input('>> ') # Allow for inputs but still connect new users (ex, a minecraft server)
conn, addr = self.server.accept()
print(f"[NEW CONNECTION] {conn}:{addr}")
thread = threading.Thread(target=self.clientThread, args=(conn, addr))
thread.start()
簡而言之,它會偵聽新連接或允許輸入,但它永遠不會同時執行這兩種操作......我知道我可以通過在不同的 cmd 中運行它來做到這一點,但最好將它全部保存在一個地方。
uj5u.com熱心網友回復:
您可以創建一個 ClientHandler 或創建兩個方法。像這樣:
def connecting_users():
# accept connections
thread = threading.Thread(target=server_commands,)
thread.start()
while True:
conn, addr = server.accept()
# do your stuff
def server_commands():
while True:
command = input......
請注意,這未經測驗
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/531156.html
標籤:Python多线程插座
下一篇:創建執行緒后如何獲取用戶輸入
