Bonjour à tous, voila 3 jours que l'on bloque sur un problème qui doit être con !
On crée une struture objet :
Ensuite, voila comment sont remplies les variables :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 typedef struct { int num; char categorie [MAXT]; char titre [MAXT]; char description [MAXT]; int duree; int prix_depart; int prix_reserve; int termine; } objet;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 ssize_t lu; char choix[MAXT]; int pid = getpid(); int cpt=0; int duree,prix_d,prix_r; objet obj; obj.num=nbo; do{ lu = recv(f,choix,MAXT,0); //on lit ce qu'il y a sur le buffer et le met ds choix switch (cpt) { case 0: strcpy(obj.categorie,choix);break; // d'abord on remplit la categorie ... case 1: strcpy(obj.titre,choix);break; case 2: strcpy(obj.description,choix);break; case 3: sscanf(choix,"%d",&duree);obj.duree=duree;break; case 4: sscanf(choix,"%d",&prix_d);obj.prix_depart=prix_d;break; case 5: sscanf(choix,"%d",&prix_r);obj.prix_reserve=prix_r;break; } cpt++; } while (cpt<6); tab[nbo]=obj; nbo++; obj.termine = 0;
Maintenant, on envoie les valeurs des variables au client :
Alors du coté client (en java), c'est EXACTEMENT le même alogo, mais dans l'autre sens !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 ssize_t lu; char choix[MAXT]; char nbobj[MAXT]; char num_obj[MAXT]; char prix[MAXT];char tmp[MAXT]; int pid = getpid(); int duree,prix_d,prix_r; objet obj; obj.num=nbo; int cpt=0,i=0; sprintf(nbobj,"%d",nbo); strcat(nbobj,"\n"); cpt=write(f,nbobj,strlen(nbobj)); sprintf(num_obj,"%d",tab[0].num); strcat(num_obj,"\n"); cpt=write(f,num_obj,strlen(num_obj)); printf("%d\n",cpt); strcat(tab[0].titre,"\n"); cpt=write(f,tab[0].titre,strlen(tab[0].titre)); printf("%d\n",cpt); strcat(tab[0].description,"\n"); strcpy(tmp,tab[0].titre); cpt=write(f,tab[0].description,strlen(tab[0].description)); printf("%d\n",cpt); sprintf(prix,"%d",tab[0].prix_depart); strcat(prix,"\n"); cpt=write(f,prix,strlen(prix)); printf("%d\n",cpt);
Le problème est, que dès que le client recoit Titre, Categorie, ou Description, ça beugue.
Par exemple, si on se contente d'envoyer num_obj, ou prix, pas de problèmes !
Mais dès que c'est un char (titre, description...), le PREMIER envoie/reception fonctionne, mais pour les suivants, le client recoit que du vide![]()
Tous les envois/réceptions sui suivent l'envoie d'un char ne fonctionnent plus! C'est trop bizzard.
On a tout testé, avec les write, ou les send, même problème.
On dirait que ça vient des chars, mais d'ou exactement?
Merci bcp, dans l'espoir que vous allez m'aider svp !
Partager