janela em pygame congelar enquanto espera

Estou usando o pygame para o meu jogo e online, mas o problema é que sempre que o loop principal do jogo aguarda o soquete do servidor, ele congela. portanto, a menos que você esteja fazendo sua vez, o cliente aguarda um soquete do servidor e não faz nada enquanto espera e congela até que ele consiga o soquete e faça sua vez.

Então, eu li algumas respostas e soluções neste site e em alguns outros e pelo que entendi depois de 5 segundos sem fazer nada, o sistema operacional pensa que a janela (se trancou)? então criei o thread keep_run, mas ele não faz nenhuma alteração e a janela ainda congela enquanto não é a vez dele.

Também para mencionar que o servidor trabalha com a biblioteca de seleção, se sua ajuda for de qualquer maneira, porque keep_run () é o único thread que eu usei.

Eu não incluí muitas linhas no meu código, porque há muito, mas é uma conclusão básica das coisas importantes que talvez causem isso?

import sockets
import pygame
from threading import Thread
def keep_run():
    clock = pygame.time.Clock()
    fps = 60
    while True:
        pygame.event.pump()
        clock.tick(fps)

pygame.init()
keep_running = Thread(target=keep_run)
keep_running.setDaemon(True)
keep_running.start()


while Game_run:

   #the main loop
   server_command = client_socket.recv(1024)
   if server_command == "move":
       # make your turn
       do_turn()
   elif server_command == "over":
       # finish the game
       finish_game()

imagem do exemplo:https://i.stack.imgur.com/b4Qx8.png

questionAnswers(1)

yourAnswerToTheQuestion