1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
//********Coté serveur**************
long tailleFichier = getSize(nom); //renvoie la taille du fichier nom
char msg[256];
sprintf(msg, "%d", tailleFichier);
int lgMsg = strlen(msg);
int snd = send(descBr, msg, lgMsg, 0); //on envoie la taille du fichier au client
//Si le fichier existe on l'expédie au client
if (tailleFichier != -1)
{
//Ouverture du fichier a envoyer
size_t s = nom.size() + 1;
char * nomFichier = new char[ s ];
strncpy( nomFichier, nom.c_str(), s );
FILE* fichier;
if((fichier=fopen(nomFichier, "rb")) == NULL)
{
cout << "Probleme lors de l'ouverture du fichier." << endl;
}
//Expedition du fichier
cout << "Debut de l'expedition du fichier" << endl;
int octetsEnvoyes = 0;
int octetsLus;
char buffer [256];
while(octetsEnvoyes != tailleFichier)
{
octetsLus=fread(buffer, 1, 256, fichier);
snd = send(descBr, buffer, octetsLus, 0);
octetsEnvoyes = octetsEnvoyes + snd;
}
//On fini par fermer le fichier
fclose(fichier); |
Partager