[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
- Carte mere socket 775 - Forum Carte graphique
- Socket error soulseek - Forum Logiciels
- Exception:une requête d’envoi ou de réception de données n’a pas été autorisée car le socket n’est pas connecté et (lors de l’envoi sur un socket datagramme en utilisant un appel sendto) aucune adresse n’a été fournie - Forum Windows
- Socket ft1 ✓ - Forum PC portable
- Check_nrpe state critical: socket timeout after 10 seconds. ✓ - Forum Ubuntu