Bonjour,
Voila je fait un client TCP qui doit lire sur une socket pour recuperer des information.
J utilise donc la fonction recv().
ce qui est bizarre c'est que recv me retourne a chaque fois un nombre negatif :
Voici la partie de mon code
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 ..... int res; while (1) { res = recv(socket, rep, sizeof(rep), MSG_NOSIGNAL); printf("res = %d\n); if (res < 0) break // autre action } ....
lorsque j enleve le break, je recois bien les message, il les traite bien et res affiche -1211457875.
Le problème est quand le server ferme la socket ca me fait un segmentation fault car la chaine est NULL.
Certes je pourrais simplement calculer la taille de la chaine, mais le probleme est que ces données qui se trouve dans rep peuvent être des entiers (mis sur 4 bytes), des shorts (mis sur 2 bytes) et des chaines de caracteres.
Partager