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à :
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 :
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
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
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
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
Partager