Problème de fonctionnement d'un programme Python

Le problème exposé dans ce sujet a été résolu.

Bonjour à tous ! Je crée ce sujet car j’ai un problème avec un programme en Python. Il me semble que je n’ai fait aucune erreur (de plus, j’ai testé le code partie par partie et tout marchait bien), et pourtant lorsque je lance mon programme, il s’arrête au bout d’un moment sans que je sache pourquoi :( . Je serai bien content si vous m’aidiez à comprendre où j’ai fait une erreur !

En fait, mon programme est séparé en deux fichiers, car c’est un programme fonctionnant avec des sockets (donc un pour le serveur et un pour les clients). Le problème semble venir du programme destiné aux clients car tout marche bien chez le serveur.

Le programme fonctionne aussi avec Pygame, car je souhaite coder un petit jeu en réseau. :)

Voici le code du client :

#coding:utf-8

### Importation des bibliothèques
import socket, pygame, time
from pygame.locals import *
#################################

### Initialisation de pygame
pygame.init()
x_ecran, y_ecran = pygame.display.Info().current_w, pygame.display.Info().current_h
x_ecran = x_ecran-200
y_ecran = y_ecran-113
############################

### Variables
bouclecompte = 0
envoi = "%"
lancementjeu = 0
#############

### Préparation pour la connexion au serveur
host, port = ("localhost", 9810) # Le serveur est sur le port 9810 et son adresse IP est "localhost"
socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # Paramètres de socket
############################################

### Connexion avec le serveur
try:
    socket.connect((host, port)) # Connexion au serveur

    ### Partie "compte"
    while bouclecompte == 0:
        while "%" in envoi:
            pseudo = input("PSEUDO >>> ")
            motdepasse = input("MOT DE PASSE >>> ")
            envoi = f"{pseudo}/{motdepasse}/c"
            if "%" in envoi:
                print("Caractère % non autorisé, veuillez réessayer.")
            else:
                envoi = envoi.encode("utf8")
                socket.sendall(envoi)
                reception = socket.recv(1024)
                reception = reception.decode("utf8")
                print(reception)
                if reception == "compte existant":
                    print("Compte trouvé, jeu lancé.")
                    bouclecompte = 1
                    lancementjeu = 1
                else:
                    x = input("Compte non trouvé, souhaitez vous créer un compte ? (oui/non) >>> ")
                    if x == "oui":
                        envoi = f"{pseudo}/{motdepasse}/n"
                        envoi = envoi.encode("utf8")
                        socket.sendall(envoi)
                        bouclecompte = 1
                        lancementjeu = 1
                    else:
                        print("Ok, réessayez de vous connecter.")
                        envoi = "%"
    ###################

    ########## PARTIE JEU ##########
    fenetre = pygame.display.set_mode((x_ecran, y_ecran)) # Ouverture de la fenêtre du jeu

    time.sleep(5)
    ################################



except: # Si la connexion au serveur échoue
    print("la connexion est coupée")
finally: # Dans tous les cas on coupe la connexion
    socket.close()
#############################

Merci d’avance de vos réponses !

+0 -0

Salut,

Déjà est-ce tu peux préciser ce que tu entends par « il s’arrête au bout d’un moment ». Est-ce que le programme se coupe brutalement et que tu obtiens une exception ?
Si oui il serait bien de nous donner la trace de cette exception, trace que tu n’obtiens pas actuellement à cause de ton except très large qui ne donne aucune information sur l’exception attrapée.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte