cs_kiitos
Messages postés34Date d'inscriptionvendredi 10 mars 2006StatutMembreDernière intervention14 septembre 2008
-
13 sept. 2008 à 16:46
deck_bsd
Messages postés1243Date d'inscriptionjeudi 31 mars 2005StatutMembreDernière intervention 3 août 2016
-
22 sept. 2008 à 17:40
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 ?
Kian_ix
Messages postés26Date d'inscriptiondimanche 18 février 2007StatutMembreDernière intervention 5 avril 2009 13 sept. 2008 à 22:15
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].
deck_bsd
Messages postés1243Date d'inscriptionjeudi 31 mars 2005StatutMembreDernière intervention 3 août 20162 22 sept. 2008 à 17:40
Yop,
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.