quand j'envoi un message volumineux(fichier texte),il est envoyé mais le problème est que le code arrivé à destination n'est pas complet.ilya meme pas le 1/2 du code.sachant que ma socket qui envoi le code est celle là :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
while 1:
            data = conn.recv(1024)
            if not data: return "KO"
            conn.send(BCLinuxTestPage().printOutput())
et du coté de réception :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
try:
    socket.connect((TCP_IP, TCP_PORT))
    socket.send(MESSAGE)
    data = socket.recv(BUFFER_SIZE)
    socket.close()
    print data

j'ai essayé de mettre la reception en boucle comme ça
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
try:
    socket.connect((TCP_IP, TCP_PORT))
    socket.send(MESSAGE)
    while 1:
        data = socket.recv(BUFFER_SIZE)
    socket.close()
    print data
except:
    print ERROR_MESSAGE
ou comme ça

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
try:
    socket.connect((TCP_IP, TCP_PORT))
    socket.send(MESSAGE)
    while 1:
        data = socket.recv(BUFFER_SIZE)
        socket.close()
    print data
except:
    print ERROR_MESSAGE
ça ne marche pas non plus.une erreur survient me disant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
error: [Errno 104] Connection reset by peer

alors j'ai essayé d'augmenter le buffer size et j'ai mis 5000 à l'envoi ainsi qu'à la réception.
alors ici le fichier tout entier est arrivé mais le problème est qu'il m'affiche une erreur:
en plus c'est pas une solution car si le buffer est < à la taille du texte alors le fichier soit incomplet sinon mon fichier sera surchargé(à la fin de mon fichier il lui ajoute à la fin une copie de l'entete ou quelques chose comme ça.


moi je veux seulement recevoir mon fichier entièrement.de préférence dans une boucle à fin que je ne modifie pas le buffer size