bonjour,

je programme en c++ sur les raw socket. Je souhaite utiliser le protocole TCP.

voici la déclaration des données membres dans une classe:
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
 
unsigned short		tcp_port_src;		//Port source: 16 bits --> Le numéro de port de la source. 
	unsigned short		tcp_port_dst;		//Port Destinataire: 16 bits --> Le numéro de port du destinataire. 
	unsigned int		tcp_seq;			//Numéro de séquence: 32 bits --> Le numéro du premier octet de données par rapport au début de la transmission (sauf si SYN est marqué). Si SYN est marqué, le numéro de séquence est le numéro de séquence initial (ISN) et le premier octet à pour numéro ISN+1. 
	unsigned int		tcp_ack;			//Accusé de réception: 32 bits --> Si ACK est marqué ce champ contient le numéro de séquence du prochain octet que le récepteur s'attend à recevoir. Une fois la connexion établie, ce champ est toujours renseigné. 
	/*
	Data Offset: 4 bits --> La taille de l'en-tête TCP en nombre de mots de 32 bits. Il indique là ou commence les données. L'en-tête TCP, dans tous les cas à une taille correspondant à un nombre entier de mots de 32 bits.
 
    Réservé: 6 bits --> Réservés pour usage futur. Doivent nécessairement être à 0. 
 
	Control Bits : 6 bits
	URG:  Urgent Pointer field significant
    ACK:  Acknowledgment field significant
    PSH:  Push Function
    RST:  Reset the connection
    SYN:  Synchronize sequence numbers
    FIN:  No more data from sender
	*/
	unsigned short		tcp_dataOffset:4, tcp_reserve:6, tcp_Curg:1, tcp_Cack:1, tcp_Cpsh:1, tcp_Crst:1, tcp_Csyn:1, tcp_Cfin:1;
	unsigned short		tcp_win;			//Fenêtre: 16 bits --> Le nombre d'octets à partir de la position marquée dans l'accusé de réception que le récepteur est capable de recevoir. 
	unsigned short		tcp_sum;			//Checksum: 16 bits
	unsigned short		tcp_urgentPointeur;
j'ai vu que l'on pouvait utiliser tous les bits d'un short, int, char. le tout se réalise avec :nombre ou nombre représente le nombre de bit a utiliser.

comme dans la déclaration suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
unsigned short		tcp_dataOffset:4, tcp_reserve:6, tcp_Curg:1, tcp_Cack:1, tcp_Cpsh:1, tcp_Crst:1, tcp_Csyn:1, tcp_Cfin:1;
cependant, les questions que je me pose sont comment initialiser chaque valeur?
doit on utiliser de l'exa, du binaire ou du décimal?

en ce qui me concerne, chaque valeur sera rentré en décimal, il faudra surement que je les transforme ...