Bonjour,
Je rencontre un soucis quand je lis dans mon socket :
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...
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); }
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 !
Partager