Bonjour,

Je devellope un client/serveur.

Mon probleme est un read, je en sais pas la taille de mon buffer. Donc je lis nb octets par nb octets, le seul probleme est que au moment de la reconcatenation, ben ça me donne des choses bizarre. A ors que quand je peux lire d'une traite non.

int nb_buffer=20;
int i;
char txt_buffer[nb_buffer];
char *txt_buffer_parser;
char *att_buffer_parser;

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
 
while(read(wcd->sock,txt_buffer,nb_buffer) == nb_buffer);		
{
  fp_debug_real("buffer---> %s\n", txt_buffer);
  /*Initialisation attente*/
  att_buffer_parser= (char *)malloc((strlen(txt_buffer_parser)+nb_buffer)*sizeof(char)+1);
  /*mise du parser dans att*/
  strcpy(att_buffer_parser,txt_buffer_parser);
  /*mise du buffer dans att*/
  strcat(att_buffer_parser,txt_buffer);
 /*Reinitialisation du parser*/
 free(txt_buffer_parser);
 txt_buffer_parser= (char *)malloc(strlen(att_buffer_parser)*sizeof(char)+1);
 strcpy(txt_buffer_parser,att_buffer_parser);
 free(att_buffer_parser);
 fp_debug_real("read result contact ---> %s\n", txt_buffer_parser);
 
 for (i=0; i< nb_buffer ; i++)
     txt_buffer[i]='.';		
  fp_debug_real("%s\n", txt_buffer);
			}
Auriez-vous une idée autre que celle ci, pour lire une chaine dont on ne connait pas la taille. Je ne peux utiliser que la fonction read.