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

Réseau/Web Python Discussion :

Echec de la connection reseau en local [Python 3.X]


Sujet :

Réseau/Web Python

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Mars 2015
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 54
    Points : 28
    Points
    28
    Par défaut Echec de la connection reseau en local
    Bonsoir

    J'ai un soucis comme vous le penser bien, je développe une bataille navale en multijoueur et je n'arrive pas a connecter mon client et mon serveur. En théorie tous devrais fonctionner normalement mais non.

    Voila mon code:

    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
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
     
    from tkinter import *
    import socket, sys
    from socket import gethostbyname_ex, gethostname
     
     
     
     
    global role
     
    """
    """
    def Valider(): #appeler par la fonction IP_host
        global fenetre_hebergeur
     
        try:
            print(HOST.get())
        except:
            print(HOST)
     
        try:
            fenetre_hebergeur.destroy()
        except:
            pass
     
        Serveur()
     
    """
    """
    def IP_host(): #appeler par le bouton heberger
     
     
        global HOST
        global fenetre_hebergeur
     
        HOST = StringVar()
        fenetre_choix.destroy()
     
        # L'ip du serveur pour le socket est directement recuperer sur l'ordinateur
     
        try:
     
            HOST = [ip for ip in socket.gethostbyname_ex(socket.gethostname())[2] if not ip.startswith("127.")][0]
            Valider()
     
        except:
     
            fenetre_hebergeur = Tk()
            fenetre_hebergeur.title("Bataille Navale IP")
     
            HOST = StringVar()
     
            # création des widgets d'entrée
            ip_label = Label(fenetre_hebergeur, text="Entrer votre IP :", font="arial 10 bold")
            ip_entry = Entry(fenetre_hebergeur, width=14, text = HOST)
            test_button = Button(fenetre_hebergeur, text="Valider", font="arial 10 bold", command=Valider)
     
            # placement des widgets d'entrée dans fenetre
            ip_label.pack(side=LEFT,padx=8,pady=8)
            ip_entry.pack(side=LEFT,padx=8,pady=8)
            test_button.pack(side=LEFT,padx=30,pady=8)
     
            fenetre_hebergeur.mainloop
     
    """
    """
     
    def Rejoindre(): #appeler par le bouton rejoindre
     
        role = 2
     
        fenetre_choix.destroy()
     
        fenetre_connection = Tk()
        fenetre_connection.title("Bataille Navale Connection")
     
        global ip_serveur
        global port_serveur
     
        ip_serveur = StringVar()
        port_serveur = IntVar()
     
        # création des widgets d'entrée
        ip_label = Label(fenetre_connection, text="IP :", font="arial 10 bold")
        ip_entry = Entry(fenetre_connection, width=14, text = ip_serveur)
        port_label = Label(fenetre_connection, text="Port :", font="arial 10 bold")
        port_entry = Entry(fenetre_connection, width=5, text = port_serveur)
        test_button = Button(fenetre_connection, text="Connection", font="arial 10 bold", command=connection)
     
        # placement des widgets d'entrée dans fenetre
        ip_label.pack(side=LEFT,padx=8,pady=8)
        ip_entry.pack(side=LEFT,padx=16,pady=8)
        port_label.pack(side=LEFT,padx=8,pady=8)
        port_entry.pack(side=LEFT,padx=8,pady=8)
        test_button.pack(side=LEFT,padx=8,pady=8)
     
        fenetre_connection.mainloop
     
    """
    """
     
    def connection(): #appeler par la fonction rejoindre quand on clic sur connection
     
     
        print("Tentative de création d'un socket à l'adresse "+str(ip_serveur.get())+" sur le port "+str(port_serveur.get())+"...")
     
     
        # création du socket
     
        mySocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        try :  
     
            mySocket.connect((ip_server.get(), int(port_serveur.get())))
            print("Socket créé. Connexion au serveur...")
     
        except socket.error:
            print("Echec de la connection. Réessayez...")
            sys.exit()
     
        print("Vous etes connecte au serveur"+ str(HOST))
        fenetre_connection.destroy()
     
    """
    """
     
    def Serveur(): #appeler par valider
     
        global HOST
     
        role = 1    # role -> serveur(1) ou client(2) pour gerer le tour par tour
     
        try:    
            print("Tentative de création d'un socket à l'adresse "+ str(HOST.get()) +" sur le port 50000...")
        except:
            print("Tentative de création d'un socket à l'adresse "+ str(HOST) +" sur le port 50000...")
        mySocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     
        try :
            mySocket.bind((str(HOST), int(50000)))
            print("En attente d'un joueur...")
     
        except socket.error:
            print("Echec de la connection. Réessayez...")
            sys.exit()
     
        mySocket.listen(40)
        connexion, adresse = mySocket.accept()
     
     
    """
    Fin definition des fonctions
    """
     
     
    #Debut du programme
     
    fenetre_choix = Tk()
    fenetre_choix.title("Bataille Navale Connection  IP: " + str(gethostbyname_ex(gethostname())[2]))
     
    button_heber = Button(fenetre_choix, text = "Heberger une partie",font="arial 12 bold",command=IP_host )
    button_rej = Button(fenetre_choix, text = "Rejoindre une partie",font="arial 12 bold", command=Rejoindre)
    button_ia = Button(fenetre_choix, text = "Jouer contre l'IA",font="arial 12 bold")
    taille_x_l = Label(fenetre_choix)
    taille_y_b = Label(fenetre_choix)
    info_ip = Label(fenetre_choix, text = "Votre IP: " +str(gethostbyname_ex(gethostname())[2]))
     
    taille_x_l.pack(side=TOP,padx=380,pady=20)
    button_heber.pack(side=TOP,padx=50,pady=10)
    button_rej.pack(side=TOP,padx=50,pady=10)
    button_ia.pack(side=TOP,padx=50,pady=10)
    taille_y_b.pack(side=TOP,pady=80)
    info_ip.pack(side=BOTTOM)
     
     
    fenetre_choix.mainloop()
     
    """
    #Programme Bataille navale
    """
     
    """
    #Jeu Partie Serveur
    """
     
    """
    #Jeu Partie Client
    """
    Le serveur se met bien en attente d'apres la console mais le client échoue a ce connecter.
    La partie Serveur/Client est gerer dans la fonction Serveur et connection
    Je suis preneur de toute les solutions.

    Mes deux Pc sont sous W 8.1 Pro avec Eset Nod 32 en antivirus. Je suis administrateur sur les deux postes.

    merci de votre aide

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Mars 2015
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 54
    Points : 28
    Points
    28
    Par défaut RESOLUE
    Pas de reponse mais je me suis debrouiller

    Voila la solution j'ai modifier les fonctions Serveur et Connection

    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
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    from tkinter import *
    import socket, sys
    from socket import gethostbyname_ex, gethostname
     
     
     
     
    global role
     
    """
    """
    def Valider(): #appeler par la fonction IP_host
        global fenetre_hebergeur
     
        try:
            print(HOST.get())
        except:
            print(HOST)
     
        try:
            fenetre_hebergeur.destroy()
        except:
            pass
     
        Serveur()
     
    """
    """
    def IP_host(): #appeler par le bouton heberger
     
     
        global HOST
        global fenetre_hebergeur
        global HOST_UNI
     
        HOST = StringVar()
        fenetre_choix.destroy()
     
        # L'ip du serveur pour le socket est directement recuperer sur l'ordinateur
     
        try:
     
            HOST = [ip for ip in socket.gethostbyname_ex(socket.gethostname())[2] if not ip.startswith("127.")][0]
            Valider()
     
        except:
     
            fenetre_hebergeur = Tk()
            fenetre_hebergeur.title("Bataille Navale IP")
     
            HOST = StringVar()
     
            # création des widgets d'entrée
            ip_label = Label(fenetre_hebergeur, text="Entrer votre IP :", font="arial 10 bold")
            ip_entry = Entry(fenetre_hebergeur, width=14, text = HOST)
            test_button = Button(fenetre_hebergeur, text="Valider", font="arial 10 bold", command=Valider)
     
            # placement des widgets d'entrée dans fenetre
            ip_label.pack(side=LEFT,padx=8,pady=8)
            ip_entry.pack(side=LEFT,padx=8,pady=8)
            test_button.pack(side=LEFT,padx=30,pady=8)
     
            fenetre_hebergeur.mainloop
     
        HOST_UNI = ""
     
        try:
            HOST_UNI = HOST
        except:
            HOST_UNI = str(HOST.get())
     
    """
    """
     
    def Rejoindre(): #appeler par le bouton rejoindre
     
        role = 2
     
        fenetre_choix.destroy()
     
        global fenetre_connection
     
        fenetre_connection = Tk()
        fenetre_connection.title("Bataille Navale Connection")
     
        global ip_serveur
        global port_serveur
     
        ip_serveur = StringVar()
        port_serveur = IntVar()
     
        # création des widgets d'entrée
        ip_label = Label(fenetre_connection, text="IP :", font="arial 10 bold")
        ip_entry = Entry(fenetre_connection, width=14, text = ip_serveur)
        port_label = Label(fenetre_connection, text="Port :", font="arial 10 bold")
        port_entry = Entry(fenetre_connection, width=5, text = port_serveur)
        test_button = Button(fenetre_connection, text="Connection", font="arial 10 bold", command=connection)
     
        # placement des widgets d'entrée dans fenetre
        ip_label.pack(side=LEFT,padx=8,pady=8)
        ip_entry.pack(side=LEFT,padx=16,pady=8)
        port_label.pack(side=LEFT,padx=8,pady=8)
        port_entry.pack(side=LEFT,padx=8,pady=8)
        test_button.pack(side=LEFT,padx=8,pady=8)
     
        fenetre_connection.mainloop
     
    """
    """
     
    def connection(): #appeler par la fonction rejoindre quand on clic sur connection
     
        global fenetre_connection
     
        print("Tentative de création d'un socket à l'adresse "+str(ip_serveur.get())+" sur le port "+str(port_serveur.get())+"...")
     
     
        # création du socket
     
        connexion_avec_serveur = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        connexion_avec_serveur.connect((ip_serveur.get(), int("50000")))
     
        print("Vous etes connecte au serveur"+ str(ip_serveur.get()))
        fenetre_connection.destroy()
     
    """
    """
     
    def Serveur(): #appeler par valider
     
        global HOST
        global HOST_UNI
     
        role = 1    # role -> serveur(1) ou client(2) pour gerer le tour par tour
     
        try:    
            print("Tentative de création d'un socket à l'adresse "+ str(HOST.get()) +" sur le port 50000...")
        except:
            print("Tentative de création d'un socket à l'adresse "+ str(HOST) +" sur le port 50000...")
     
        connexion_principale = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        connexion_principale.bind(("", int("50000")))
        connexion_principale.listen(5)
        connexion_avec_client, infos_connexion = connexion_principale.accept()
        print("ok")
    """
    Fin definition des fonctions
    """
     
     
    #Debut du programme
     
    fenetre_choix = Tk()
    fenetre_choix.title("Bataille Navale Connection  IP: " + str(gethostbyname_ex(gethostname())[2]))
     
    button_heber = Button(fenetre_choix, text = "Heberger une partie",font="arial 12 bold",command=IP_host )
    button_rej = Button(fenetre_choix, text = "Rejoindre une partie",font="arial 12 bold", command=Rejoindre)
    button_ia = Button(fenetre_choix, text = "Jouer contre l'IA",font="arial 12 bold")
    taille_x_l = Label(fenetre_choix)
    taille_y_b = Label(fenetre_choix)
    info_ip = Label(fenetre_choix, text = "Votre IP: " +str(gethostbyname_ex(gethostname())[2]))
     
    taille_x_l.pack(side=TOP,padx=380,pady=20)
    button_heber.pack(side=TOP,padx=50,pady=10)
    button_rej.pack(side=TOP,padx=50,pady=10)
    button_ia.pack(side=TOP,padx=50,pady=10)
    taille_y_b.pack(side=TOP,pady=80)
    info_ip.pack(side=BOTTOM)
     
     
    fenetre_choix.mainloop()
     
    """
    #Programme Bataille navale
    """
     
    """
    #Jeu Partie Serveur
    """
     
    """
    #Jeu Partie Client
    """

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème connection reseau local
    Par buzzludo dans le forum VBScript
    Réponses: 2
    Dernier message: 14/08/2008, 14h19
  2. [VB6] Connection réseau
    Par nyouki dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 16/05/2006, 09h38
  3. Connection Réseau
    Par jeje_38 dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 11/01/2006, 16h36
  4. Connection réseau et Linux des questions
    Par kacedda dans le forum Réseau
    Réponses: 4
    Dernier message: 05/11/2005, 23h29
  5. [Debutant]Impossible de se connecter au serveur local
    Par Kenji dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 24/04/2005, 19h55

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