recv(sock, buffer, sizeof(buffer), 0); taille = atol(buffer); printf("\n%ld\n\n", taille); while(taille > TAILLE_BUF) { recv(sock, copy, TAILLE_BUF, 0); fwrite(copy,1, TAILLE_BUF, fp); taille = taille - TAILLE_BUF; } memset(copy, '\0', TAILLE_BUF); recv(sock, copy, taille, 0); fwrite(copy,1, taille, fp);
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].
|