Mes deux programmes n'arrivent pas toujours à s'envoyer des fichiers correctement, est ce qu'il y a un moyen de faire un serveur qui envoie des fichiers sans aucune erreurs ?
fais voir ton code mais oui évidement ya un moyen
moi je sais que la premiere fois que jai créé un prog d'échage de fichiers javais plins d'erreurs d'octets dans les fichiers pasque je fesais des sends de 1 octets a la suite et ca arrivait dans le désordre mais bon je débutais ^^
fseek(fp , 0, SEEK_SET);
fseek(fp , 0, SEEK_END);
taille = ftell(fp);
sprintf(mychar, "%d", taille);
strcat(buffer, mychar);
send(csock, buffer, strlen(buffer), 0);
memset(mychar, '\0', 5000);
fseek(fp , 0, SEEK_SET);
printf("\n nombre d'octets : %ld\n\n", taille);
while(taille > TAILLE_BUF) //si la taille du fichier est supérieure à la taille du buffer
{
fread(copy,1, TAILLE_BUF, fp); //on lit le contenu du fichier
send(csock, copy, TAILLE_BUF, 0); //et on l'envoie
taille = taille - TAILLE_BUF; //tant qu'on n'est pas à la fin du fichier
}
memset(copy, '\0', TAILLE_BUF);
fread(copy, 1, taille, fp); //on lit le contenu du fichier
send(csock, copy, taille, 0);
J'ai pris la n-ième source d'un autre gars comme n-ième exemple et je
suis content que ça marche un peu mieux. Je me demande combien de fois ce
code fonctionnera, #define TAILLE_BUF 1000 et copy[TAILLE_BUF].
Un petit conseil, au lieu d'y aller a tâton , prend bien le temps de comprendre les socket, c'est pas très dure. et puis après fait le code toi même, tu veras , ce sera bcp plus claire.