1 pièce(s) jointe(s)
Pb transfert structure par socket
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
Code:
1 2 3 4 5 6
|
struct head
{
int size;
char *FichierTransfertSock;
}; |
Côté client :
Code:
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);
} |
J'ai fait de sprintf pour vérifier que les éléments de ma strcuture soit bien valorisé et c'est ok.
Côté serveur :
Code:
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); |
Les printf me donnent le résultat suivant :
Code:
1 2
|
fichier à créer : Taille fichier : 256 |
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......
Pour plus d'infos, un zip de mes sources :
Merci d'avance pour l'aide que vous pourrez m'apporter.