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
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 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()
Merci pour l'aide !
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()
(J'utilise Python 3.9.0 sous Windows 10.)
Partager