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 :

Connexion entre 2 ordinateurs Client / Serveur


Sujet :

Réseau/Web Python

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Connexion entre 2 ordinateurs Client / Serveur
    Bonjour,
    J'utilise 2 programmes Client / Server pour permettre à 2 ordinateurs de se connecter entre eux.
    Cependant, ils ne parviennent pas à se détecter, malgré le fait qu'ils soient tous 2 connectés au même réseau wifi.
    Je ne comprends absolument pas le pb (quand j'exécute leq 2 programmes sur le même ordi, ils marchent, les 2 programmes arrivent à se lier ici, mais pas quand c'est sur 2 ordi différents).

    Ci-joint les 2 programmes.

    client.py
    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
    import threading
    import socket
    from tkinter import *
     
    def demarrer():
        global s#####
        bouton_demarrer["state"],bouton_stop["state"]="disable","normal"
        texte_bis.config(text="\u2B55 Waiting connexion",fg="orange")
        s=socket.socket()
        threading.Thread(target=lancement_client,daemon=True).start()
     
    def lancement_client():
        try:
            s.connect(("127.0.0.1",12345))
            texte_bis.config(text="\u2714 Successful connexion",fg="green")
            bouton_envoyer["state"],saisie["state"]="normal","normal"
            hostname = socket.gethostname()
            print(f"Hostname : {hostname}")
            ip_address = socket.gethostbyname(hostname)
            print(f"IP Address : {ip_address}")
            try:
                while True:
                    rcvdData=s.recv(1024).decode()
                    print("Server :",rcvdData)
            except:stop()
        except:
            print("Délai dépassé")
            stop()
     
    def envoyer():
        s.send(msg.get().encode())
        msg.set("")
     
    def stop():
        s.close()#####
        try:c.close()#####
        except:pass#####
        texte_bis.config(text="\u2716 Connexion lost",fg="red")
        bouton_demarrer["state"],bouton_envoyer["state"],bouton_stop["state"],saisie["state"]="normal","disable","disable","disable"
        msg.set("")
     
    fenetre=Tk()
    fenetre.geometry("{}x{}+{}+{}".format(500,200,400+300,200))
    texte=Label(fenetre,text="CLIENT",font=25)
    texte.pack()
    bouton_demarrer=Button(fenetre,text="Démarrer",font=25,command=demarrer)
    bouton_demarrer.pack()
    texte_bis=Label(fenetre,font=25)
    texte_bis.pack()
    msg=StringVar()
    saisie=Entry(fenetre,textvariable=msg,font=25,state="disable")
    saisie.pack()
    bouton_envoyer=Button(fenetre,text="Envoyer",font=25,command=envoyer,state="disable")
    bouton_envoyer.pack()
    bouton_stop=Button(fenetre,text="Stop",font=25,command=stop,state="disable")
    bouton_stop.pack()
    fenetre.mainloop()
    server.py
    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
    import threading
    import socket
    from tkinter import *
     
    def demarrer():
        global s#####
        bouton_demarrer["state"],bouton_stop["state"]="disable","normal"
        texte_bis.config(text="\u2B55 Waiting connexion",fg="orange")
        s=socket.socket()
        s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
        port=12345
        s.bind(("",port))
        s.listen(5)
        threading.Thread(target=lancement_server,daemon=True).start()
     
    def lancement_server():
        global c#####
        try:
            c,addr=s.accept()
            texte_bis.config(text="\u2714 Successful connexion",fg="green")
            bouton_envoyer["state"],saisie["state"]="normal","normal"
            hostname=socket.gethostname()
            print(f"Hostname : {hostname}")
            ip_address = socket.gethostbyname(hostname)
            print(f"IP Address : {ip_address}")
            try:
                while True:
                    rcvdData=c.recv(1024).decode()
                    print("Client :",rcvdData)
            except:stop()
        except:stop()
     
    def envoyer():
        c.send(msg.get().encode())
        msg.set("")
     
    def stop():
        s.close()#####
        try:c.close()#####
        except:pass#####
        texte_bis.config(text="\u2716 Connexion lost",fg="red")
        bouton_demarrer["state"],bouton_envoyer["state"],bouton_stop["state"],saisie["state"]="normal","disable","disable","disable"
        msg.set("")
     
    fenetre=Tk()
    fenetre.geometry("{}x{}+{}+{}".format(500,200,400-300,200))
    texte=Label(fenetre,text="SERVER",font=25)
    texte.pack()
    bouton_demarrer=Button(fenetre,text="Démarrer",font=25,command=demarrer)
    bouton_demarrer.pack()
    texte_bis=Label(fenetre,font=25)
    texte_bis.pack()
    msg=StringVar()
    saisie=Entry(fenetre,textvariable=msg,font=25,state="disable")
    saisie.pack()
    bouton_envoyer=Button(fenetre,text="Envoyer",font=25,command=envoyer,state="disable")
    bouton_envoyer.pack()
    bouton_stop=Button(fenetre,text="Stop",font=25,command=stop,state="disable")
    bouton_stop.pack()
    fenetre.mainloop()
    Merci pour l'aide !
    (J'utilise Python 3.9.0 sous Windows 10.)
    Dernière modification par Invité ; 15/11/2020 à 21h01. Motif: fichiers => balises [CODE] mon code [/CODE] (bouton #)

Discussions similaires

  1. [WD12] probléme de date entre WD12 et SQL server 2005
    Par Bassemca dans le forum WinDev
    Réponses: 5
    Dernier message: 19/12/2008, 21h27
  2. Comment connecter entre delphi et sql server ?
    Par DJERDJAR YACINE dans le forum Bases de données
    Réponses: 2
    Dernier message: 23/07/2007, 10h33
  3. Problème de format entre Windev et SQl Server
    Par rphenix dans le forum WinDev
    Réponses: 7
    Dernier message: 20/06/2007, 09h36
  4. J'ai un problème de connection entre deux pc
    Par The_Haunted dans le forum Hardware
    Réponses: 15
    Dernier message: 08/02/2007, 20h10
  5. problème de date entre 2 ordinateurs
    Par Kenia dans le forum Access
    Réponses: 4
    Dernier message: 09/10/2006, 12h35

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