Voilà, je vais écrire une petite application réseau et pour cela j'essaye de créer une petite classe pour gérer les flux de données.
Mon but et de décomposer mes "packets" en deux parties : entete + corps de message.
Voici une partie de ma classe qui s'occupe de créer un packet :
(Dans mon exemple HEADER_SIZE = 6 et PACKET_SIZE = 1024)
Voilà, en gros pour créer un packet du type "000005Salut à tous!" je fais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
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
37
38
et le résultat je le récupère avec :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Packet pck(5, "Salut à tous!")
Mais comme vous l'avez surement remarqué, j'ai prévu un autre constructeur au cas où je veuille passer un entier en corps de message.
Code : Sélectionner tout - Visualiser dans une fenêtre à part pck.content()
J'appelle mon constructeur ainsi:
Tout marche parfaitement, le corps de message est transmis au second constructeur sous la forme d'une chaine de caractère, et la dernière ligne du second constructeur m'affiche bien ce que je veux.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Packet pck(5, 12)
Cependant, quand je tente de récupérer mon packet avec :
Il n'y a plus rien dedans!
Code : Sélectionner tout - Visualiser dans une fenêtre à part pck.content()
Le code que j'ai masquée n'est jamais appellé, il s'agit juste de l'opération inverse, soit de récupérer un packet sous la forme entete + corps de message.
Comment cela ce fait il?
Si quelqu'un pouvait m'expliquer mon erreur!
Merci bien!

 

 
		
		 
         
 

 
			
			


 
   


 Problème de conversion de données (ostringstream, string. . .)
 Problème de conversion de données (ostringstream, string. . .)
				 Répondre avec citation
  Répondre avec citation
Partager