Creation d'un paquet pour prog windows
	
	
		Bonjour,
je souhaite developper un programme sous win qui va se connecter a un serveur. Pour cela, les paquets a envoyés doivent etre construits d'une maniere bien précise :
[taille msg sur 4 octets] [code msg sur 4 octets] [taille 'user' sur 4] ['user' texte variable] [taille 'pass' sur 4] ['pass' texte variable]
De plus, les valeur numeriques (tout sauf user et pass) doivent etre ordonnées selon la "norme" little endian.
Donc, une fois envoyé, la partie utile du paquet doit ressembler à ça, avec user="JohnGalt" et pass="secret" : 
1e00 0000 : taille msg (25)
0100 0000 : code msg (1)
0800 0000 : taille user (8 )
4a6f 686e 4761 6c74 : user
0600 0000 : taille pass (6)
7365 6372 6574 : pass
Voici ce que j'ai fait (pour l'instant jai laissé le little endian de coté...):
	Code:
	
| 12
 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
 
 |  
char *buffer;
long *taille,*code, *szuser, *szpass, *version;
char *user, *pass;
 
buffer = (char *)malloc(1024);
 
taille= (long *)buffer;
*taille = 25;
 
code = (long *)(buffer + 4);
*code = 1;
 
szuser = (long *)(buffer + 8);
*szuser = 3;
 
user = buffer + 12;
memcpy(user,"oje",3);
......
//verif, ctmp est un char*
 
sprintf(ctmp,"%s", sizeof(buffer));
MessageBox(Dlg,ctmp,"TAILLE!!!",MB_OK);
 
//29 est la taille totale du msg
memcpy(ctmp,buffer,29);
MessageBox(Dlg,ctmp,"MSG!!!",MB_OK); | 
 Avec ça j'obtient une taille affichée de 4 et le msg affiché (un simple caractere non imprimable) ne contient donc pas les chaines que je lui ai copié.
Je vous remercie pour votre aide
	 
	
	
	
		Re: Creation d'un paquet pour prog windows
	
	
		
	Citation:
	
		
		
			
				Envoyé par OjBarbare
				
			
			
	Code:
	
| 12
 3
 
 |  
memcpy(ctmp,buffer,29);
MessageBox(Dlg,ctmp,"MSG!!!",MB_OK); | 
 
	 
 buffer contient du binaire (des entiers sur 4 caractères) et donc n'est pas affichable tel quel.