IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Programmation multimédia/Jeux Python Discussion :

Besoin d'aide pour la création d'un jeu en réseau local


Sujet :

Programmation multimédia/Jeux Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2020
    Messages : 3
    Par défaut Besoin d'aide pour la création d'un jeu en réseau local
    Bonjour / Bonsoir,
    j'ai besoin d'aide pour un projet que je suis entrain de réaliser en ISN (Informatique et Sciences du Numérique), option en terminale S du lycée.

    Pour le bac nous devons créer un projet de notre choix programmé en langage Python.

    Nous sommes 3, et nous souhaitons créer un jeu. Un 1 contre 1, sur une carte 2D, avec une arme, une épée par exemple.
    Ce jeu sera en réseau local. Joueur 1 sur un ordinateur, joueur 2 sur l'autre.

    Cependant, j'ai un problème, je souhaite créer un serveur en local, en utilisant le module socket. Je n'arrive pas a me connecté au serveur entre les 2 ordinateurs sur le même réseau.
    J'aimerai savoir si quelqu'un pourrait m'aider à créer mon serveur, pour communiquer entre les 2 ordinateurs.

    Voici mon programme actuel :

    Serveur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    import socket
    import threading
     
    class serveur(threading.Thread):
    	"""docstring for serveur"""
    	def __init__(self, arg):
    		threading.Thread.__init__(self)
    		self.arg = arg
     
    	def run(self) :
    		global dictio
    		nom = self.getName()
    		continuer = True
     
    		while continuer :
    			try :
    				message = self.arg.recv(1024).decode("Utf8")
    			except socket.error :
    				continuer = False
    				break
    			else :
    				for cle in dictio :
    					if cle != nom:
    						dictio[cle].send(message.encode("Utf8"))
    		del(dictio[nom])
    		for cle in dictio :
    			dictio[cle].send(("Le client {0} vient de se déconnecter.".format(nom)).encore("Utf8"))
     
     
     
    host = 'localhost'
    port = 9000
     
    dictio = {}
     
    mysock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     
    try :
    	mysock.bind((host, port))
    except socket.error :
    	print("Le serveur n'a pas pu démarrer.")
    	exit()
     
    mysock.listen(2)
    print("Le serveur est démarrer.")
     
    continuer = True
     
    while continuer :
    	connexion, adresse = mysock.accept()
    	print("Une personne vient de se connecter. IP = {0} | Port = {1}.".format(adresse[0],adresse[1]))
    	launch = serveur(connexion)
    	launch.start()
     
    	dictio[launch.getName()] = connexion


    Client :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    import socket
    import threading
     
    class Send(threading.Thread):
    	"""docstring for Send"""
    	def __init__(self, arg):
    		threading.Thread.__init__(self)
    		super(Send, self).__init__()
    		self.arg = arg
     
    	def run(self):
    		continuer = True
     
    		while continuer :
    			message = input()
    			try :
    				self.arg.send(message.encode("Utf8"))
    			except socket.error :
    				continuer = False
    				break
    		self.arg.close()
     
    class Receive(threading.Thread):
    	"""docstring for Receive"""
    	def __init__(self, arg):
    		threading.Thread.__init__(self)
    		super(Receive, self).__init__()
    		self.arg = arg
     
    	def run(self):
    		continuer = True
     
    		while continuer :
    			try :
    				message = self.arg.recv(1024).decode("Utf8")
    			except socket.error :
    				continuer = False
    				break
    			else :
    				print(">>>>>>> {0}".format(message))
     
    		self.arg.close()
     
     
     
    host = 'localhost'
    port = 9000
     
    mysock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     
    try :
    	mysock.connect((host, port))
    except socket.error :
    	print("La connexion au serveur est impossible.")
    	exit()
     
    print("Connexion au serveur réussi.")
     
    continuer = True
     
    if __name__ == '__main__' :
    	sn = Send(mysock)
    	rv = Receive(mysock)
     
    	sn.start()
    	rv.start()


    De plus, j'aimerai savoir si possible, comment est-ce que je pourrai faire communiquer le jeu (Module Pygame) avec le serveur (Module socket). Où écrire le "programme" du jeu.

    Merci beaucoup à ceux qui souhaitent m'aider, j'espère être assez clair. J'essayerai de répondre au plus vite.
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Citation Envoyé par Mosca Voir le message
    Cependant, j'ai un problème, je souhaite créer un serveur en local, en utilisant le module socket. Je n'arrive pas a me connecté au serveur entre les 2 ordinateurs sur le même réseau.
    Je sais pas mais si vous utilisez localhost comme adresse vous êtes supposé voir regardé à quoi çà correspond...
    D'autant qu'il est facile de chercher un peu sur Internet pour trouver une entrée dans Wikipedia qui va vous éclairer un peu.

    Citation Envoyé par Mosca Voir le message
    De plus, j'aimerai savoir si possible, comment est-ce que je pourrai faire communiquer le jeu (Module Pygame) avec le serveur (Module socket). Où écrire le "programme" du jeu.
    Comment c'est facile: vous ne disposez que de sockets et de la possibilité d'échanger des séquences de bytes.
    Là ou ça se corse, c'est pas tant d'avoir à échanger des messages entre 2 programmes clients et un programme serveur mais le contenu des messages et les actions associées (que dois faire le programme X lorsqu'il reçoit le message truc) après avoir définit le rôle du serveur et celui des clients
    Et ce boulot là n'a rien à voir avec la programmation, c'est un boulot de conception de protocole réseau...
    Pas compliqué mais plein de pièges.

    Bon courage.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2020
    Messages : 3
    Par défaut re: wiztricks
    Merci de ta réponse wiztricks, cependant cela ne m'apporte rien à part de la pression supplémentaire ^^

    Etant donné que Localhost est réservé pour une même machine, que devrai-je utiliser pour 2 machines sur un même réseau ? J'ai déjà entré l'IP local, rien de plus fonctionne, et l'IP public,
    mais cela ne fonctionne toujours pas.

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Citation Envoyé par Mosca Voir le message
    Merci de ta réponse wiztricks, cependant cela ne m'apporte rien à part de la pression supplémentaire ^^
    C'est vous qui vous mettez tout seul la pression en vous lançant dans des trucs qui vous dépassent.
    Faites jouez deux joueurs sur le même PC un qui agit sur les flèches l'autre sur AZQS réduiraiit grandement la quantité de chose à apprendre.

    Etant donné que Localhost est réservé pour une même machine, que devrai-je utiliser pour 2 machines sur un même réseau ? J'ai déjà entré l'IP local, rien de plus fonctionne, et l'IP public,
    mais cela ne fonctionne toujours pas.
    Sur le client vous allez entrez l'adresse IP du serveur et sur le serveur "" pour qu'il écoute sur tous les ports.
    Et si çà ne fonctionne pas vous ouvrez un tuto... ou la documentation.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2020
    Messages : 3
    Par défaut
    Merci, le soucis c'est que je n'ai pas le choix par rapport au bac , mon professeur a dit que c'était bien de faire ça, sur un seul pc, je pense que ce sera ma deuxième solution si jamais ..

    D'accord je vais essayer, mais il me semble que j'ai déjà essayé car j'ai fait pas mal de manipulation, à voir avec la documentation et tout reprendre s'il faut.

    Merci de l'aide en tous cas

Discussions similaires

  1. besoin d'aide pour la création d'une requête
    Par fabien59420 dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 11/06/2008, 15h29
  2. besoin d'aide pour la création d'un requête
    Par fabien59420 dans le forum Requêtes et SQL.
    Réponses: 19
    Dernier message: 21/05/2008, 11h41
  3. besoin d'aide pour la création d'un logiciel
    Par lemoinedu49 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/12/2007, 06h21
  4. Réponses: 3
    Dernier message: 26/06/2007, 14h53
  5. Réponses: 2
    Dernier message: 10/03/2006, 13h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo