[C]socket : transfert d'image, video, pdf etc
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
salut a tous !
voila, j'ai un soucis en c :
je souhaite transmettre des fichier via socket pour un p2p. le probleme est que le transfert se passe mal sans que je comprenne ... voila mon code :
STRUCTURE COMMUNE :
COTE SERVEUR
COTE CLIENT :
je signale juste que le transfert de fichier txt marche trés bien ...
merci d'avance !
voila, j'ai un soucis en c :
je souhaite transmettre des fichier via socket pour un p2p. le probleme est que le transfert se passe mal sans que je comprenne ... voila mon code :
STRUCTURE COMMUNE :
typedef struct { char Buffer[500]; int finFich; }sFich;
COTE SERVEUR
void RecevoirFich(SOCKET sock , char * Trame) { char tmpNom[499]; char tst; int sortie = 0; int lngRcv; int i = 0 , j = 1; for(i,j; Trame[j] != '\0';i++,j++) tmpNom[i] = Trame[j]; tmpNom[i] = '\0'; printf("3 - reception fichier : %s\n",tmpNom); FILE * Fich = fopen(tmpNom,"wb"); sFich buff; buff.finFich = 0; if(Fich != NULL ) { while( buff.finFich == 0) { recv(sock, &buff, sizeof( buff ) , 0); fwrite(buff.Buffer , 1 , strlen(buff.Buffer)*sizeof(char) , Fich); } fclose(Fich); } }
COTE CLIENT :
void envoyerFichier(SOCKET sock,char * Buff) { char NomFichier[499]; char buff[500] ; sFich buffer; buffer.finFich = 0; int i = 0 , j = 1; for(i,j; Buff[j] != '\0';i++,j++) NomFichier[i] = Buff[j]; sendBuff(sock , Buff); FILE* fichier =fopen(NomFichier , "rb"); if ( fichier != NULL) // ce test échoue si le fichier n'est pas ouvert { while (buffer.finFich == 0) { if( fread( buffer.Buffer , sizeof(char) , 500 , fichier ) <= 0) buffer.finFich = 1; send(sock, &buffer, sizeof(buffer), 0); printf("%s\n" , buffer.Buffer); memset(buffer.Buffer,'\0',(500-1)); } printf("envoi %s fini \n", NomFichier); fclose(fichier); } else printf("erreur ouverture fichier\n"); }
je signale juste que le transfert de fichier txt marche trés bien ...
merci d'avance !
A voir également:
- [C]socket : transfert d'image, video, pdf etc
- Error 2002 (hy000): can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) - Forum Bases de données
- Socket 1366 ✓ - Forum Matériel & Système
- Changer socket carte mere ✓ - Forum Processeur
- Socket 1150 vs 1151 - Forum Processeur
- Socket error soulseek - Forum Logiciels