fonction d'envoi.
void EnvoiFichier(char *file, SOCKET sock) { char *buffer; // buffer memoire, va recevoir données du serveur int TailleFichier; // Taille Fichier FILE *fich; // Pointeur fichier Destination
if ((buffer = (char *)malloc(FICH_MAX_SIZE)) == NULL) Erreur("Reservation Memoire Impossible !"); // Hum...Raté Windows if ((fich = fopen(file, "rb")) == NULL) Erreur("Ouverture Fichier Impossible !"); // Hum...Raté Windows cout << file << endl; TailleFichier = fread(buffer, 1, FICH_MAX_SIZE, fich); // Lecture dans FICHIER if (send(sock, buffer, TailleFichier, 0) < 0) Erreur("Erreur Transmission du Client !"); free(buffer); // Libère mémoire fclose(fich); // Fermeture Fichier }
et la fonction de reception sur le serveur :
void ReceptionFichier(char *file, SOCKET sock) { char *buffer; // buffer memoire, va contenir le fichier int TailleFichier; // Taille Fichier FILE *fich, *fich2; // Pointeur fichier Source
cout << "Envoi fichier boot.ini." << endl; if ((fich = fopen("C:\\TEST\\test.txt", "w+b")) == NULL) Erreur("Ouverture Fichier Impossible !"); // Hum...Raté Windows if ((TailleFichier = recv(sock, buffer, FICH_MAX_SIZE, 0)) < 0) Erreur("Erreur Reception du Client !"); fwrite(buffer, 1, TailleFichier, fich); // Ecriture dans FICHIER fclose(fich); // Fermeture Fichier cout << "Fichier boot.ini recu." << endl; }
|