Bonjour à tous, voila 3 jours que l'on bloque sur un problème qui doit être con !

On crée une struture objet :

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;
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
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 :

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);
Alors du coté client (en java), c'est EXACTEMENT le même alogo, mais dans l'autre sens !

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 !