Bonjour à tous,
Je dois transférer un fchier par socket d'un client vers un serveur.
Pour ce faire, je souhaite en premier lieu, envoyer une structrue contenant la taille et le nom du fichier. Le rpoblème est que si je récupère bien la taille, je n'ai pas le nom du fichier
Cette structure est déclarée dans mon client et dans mon serveur
Côté client :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 struct head { int size; char *FichierTransfertSock; };
J'ai fait de sprintf pour vérifier que les éléments de ma strcuture soit bien valorisé et c'est ok.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 struct head entete; // Envoi des références du fichier à* transférer entete.size=TailleFichier(FichierTransfert); entete.FichierTransfertSock = FichierTransfert; nbchar = send(sock, (char *)&entete, sizeof(struct head),0); if (nbchar != sizeof(entete)) { printf("erreur envoi structure head"); close(sock); exit(2); }
Côté serveur :
Les printf me donnent le résultat suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 struct head entete; nbchar = recv(sock_service,(char *)&entete,sizeof(struct head),0); printf("fichier à créer : %s Taille fichier : %d\n",entete.FichierTransfertSock,entete.size);
Forcément derrière cela me pose un problème puisque le client m'envoie des lignes que je dois stocker dans un fichier pour lequel je n'ai pas de nom......
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2fichier à créer : Taille fichier : 256
Pour plus d'infos, un zip de mes sources :
Merci d'avance pour l'aide que vous pourrez m'apporter.
Partager