Bonjour,

Je rencontre un soucis quand je lis dans mon socket :

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
int n, mem;
  t_response *sockread = malloc(sizeof(t_response));
  t_response *sockreadtemp;
  t_response *list = sockread;
  n = mem = 0;
  sockread->text = malloc(50 * sizeof(char));
  sockread->next = NULL;
  while (mem == 0 && (n = read(sock, list->text, 50)) != 0)
    {
      if (n == 50 && list->text[49] != '\n')
        {
          sockreadtemp = malloc(sizeof(t_response));
          sockreadtemp->text = malloc(50 * sizeof(char));
          sockreadtemp->next = NULL;
          list->next = sockreadtemp;
          list = sockreadtemp;
        }
      else
          mem = 1;
    }
  list = sockread;
  my_readandfree(list);
}
En faite, desfois, mon read s’arrête au premier espace envoyé dans le socket, de façon "aléatoire" (pour l'instant je ne comprend pas pourquoi car en spammant mon programme il peut fonctionner bien 15 fois et merder un coup comme ça). Puis quand mon programme repasse dans cette fonction, reprend la lecture entassée de tout ce qui est resté dedans...
Je ne vois pas comment faire pour attendre par exemple qu'il n'y ai plus rien a lire dedans pour de bon...

Si quelqu'un peut m'aider..
Merci !