Sve@r | lynxia a écrit :
Code :
- fread(buffer,65535,1,fichier); // Lecture du fichier
- nb_caracteres = send(sock,buffer,size,0); //Envoi des donnees
|
|
Comme l'a dit Taz, si jamais ton fichier fait plus de 65535 octets, tu ne le récupèreras pas en entier. En plus, il me semble que "fread" travaille en signé donc il s'arrête à 32767 (c'est à vérifier). Bon, de toute façon, quelle que soit la limite t'es coincée si ton fichier la dépasse
Il faut que ton client fasse une boucle de lecture et d'envoi sur la socket
Code :
- while ((nbLu=fread(buffer, 1, N, fichier)) > 0)
- send(sock, buffer, nbLu, 0);
|
Et que ton serveur fasse une boucle de réception de la socket et d'écriture
Code :
- while ((nbLu=recv(sock, buffer, N, 0)) > 0)
- fwrite(buffer, 1, nbLu, fichier);
|
Le "N" étant une constante pouvant être définie à la valeur que tu veux (de 1 à 65535)
Quand au nom du fichier, il sera évidemment transmis en tout premier sur le serveur... Message édité par Sve@r le 08-05-2006 à 12:00:55 ---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
|