Bonjour a tous,j'ai actuellement un programme en python fonctionnant avec des sockets, qui me permet d'envoyer et recevoir des fichiers, j'ai reussi a faire en sorte que mon serveur soit toujours actif pour recevoir en chaine des fichiers, cependant mon client lui s'arrete apres le 1er envoie et je ne sais pas comment résoudre ce probleme, voici mes 2 codes:
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
 
#!/usr/bin/env python
# -*- coding: utf*-8 *-*-
 
import time, socket, os
socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
 
 
print " >> Creation du serveur"
socket.bind(("0.0.0.0", 2110)) 
socket.listen(1)
def envoie(socket):	   
	print " >> Attente d'une nouvelle connexion..."
	conn, adresse = socket.accept()
	print ""
	print " >> Vous etes connecte avec : " + adresse[0]
	print ""
 
	accepte = "non"
	num = 0
	pourcent = 0
 
	while (conn.connect):
	    recu = ""
	    recu = conn.recv(1024)
	    if not recu : break
	    if accepte == "non":
		    nomFich = recu.split("NAME ")[1]
		    nomFich = nomFich.split("OCTETS ")[0]
		    taille = recu.split("OCTETS ")[1]
		    print " >> Fichier '" + nomFich + "' [" + taille + " Ko]"
		    accepte = 'o'
		    if accepte == "o" or accepte == "oui":
			conn.send("GO")
			print time.strftime(" >> [%H:%M] transfert en cours veuillez patienter...")
			print ""
			f = open(nomFich, "wb")
			identifier = "oui"
			taille = int(taille) * 1024
	    elif recu == "cya": 
 
		print ""
		print time.strftime(" >> transfert termine !")
 
	    else:
		f.write(recu)
 
		if taille > 1024:
		    num = num + 1024
 
	envoie(socket)
envoie(socket)
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
67
68
69
70
71
72
73
 
#!/usr/bin/env python
# -*- coding: utf*-8 *-*-
 
import time, socket, os
socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
 
nomFich = "file.py"
host = "address"
print " >> Connexion en cours avec " + host + "..."
try:
    socket.connect((host, 2110))
except:
    print " >> le serveur '" + host + "' est introuvable."
    time.sleep(2)
    exit()
 
 
print ""
print " >> Vous etes connecte au serveur, patientez d'une reponse..."
print ""
 
def envoie(nomFich):
	if nomFich != "":
	    try:
		fich = open(nomFich, "rb")
		fich.close()
	    except:
		print " >> le fichier '" + nomFich + "' est introuvable."
		time.sleep(2)
		exit()
 
	    octets = os.path.getsize(nomFich) / 1024
	    print " >> OK : '" + nomFich + "' [" + str(octets) + " Ko]"
	    print ""
 
	    socket.send("NAME " + nomFich + "OCTETS " + str(octets))  
 
 
	    while (socket.connect):
 
		recu = socket.recv(1024)
		if not recu : break
 
		if recu == "GO":
		    print " >> Le serveur accepte le transfert"
		    print time.strftime(" >> [%H:%M] transfert en cours veuillez patienter...")
		    print " "
 
		    num = 0
		    pourcent = 0
		    octets = octets * 1024
		    fich = open(nomFich, "rb")
 
		    if octets > 1024:
		        for i in range(octets / 1024):        
 
		                fich.seek(num, 0) 
		                donnees = fich.read(1024)                             
		                socket.send(donnees) 
		                num = num + 1024
		    else: 
		        donnees = fich.read()
		        socket.send(donnees)
 
		    fich.close()
		    print ""
		    print time.strftime(" >> transfert termine !")
		    socket.send("cya")
 
		    time.sleep(1)
		envoie(nomFich)
envoie(nomFich)
Apres avoir testé pleins de solutions différentes, je reste quand même bloqué sur ce probleme.
Merci d'avance.