extraire un champ dans un paquet RTP - C++ - Programmation
Marsh Posté le 22-04-2011 à 16:49:29
Vu que ton champ fait 32 bits, il faut utiliser le type unsigned long int qui lui aussi fait au moins 32 bits quelque soit l'architecture.
A+,
Marsh Posté le 22-04-2011 à 17:20:10
alors, le cast C, quand tu es en C++, c'est très très mal. Ici, par exemple, ca aura comme effet dévastateur que l'entier que tu vas récupérer sera en fait l'adresse de ton pointeur et non la zone pointée ...
Ensuite, ce que tu récupères du réseau doit généralement être mis au format d'endianness de ta machine via un appel à ntohl (Network TO Host Long) dans le cas d'une donnée 32 bits.
Et comme le dit gilou, il faut que tu utilises un long int, car c'est là le type qui te garantit contenir au moins 32 bits (et sur la plupart de nos architectures actuelles, ce sera bien 32)
en gros, tu pourras faire quelque chose qui s'apparente à ca :
Code :
|
Marsh Posté le 22-04-2011 à 16:01:12
Bonjour,
Je code en C++
j'aimerais savoir comment on fait pour extraire un bloc de données dans un paquet RTP?
Il faut que j'extraie le champ SSRC qui se trouve à 8octet du début du header. le champ SSRC est en fait de type unsigned int. Comment le récupérer à partir du header RTP et l'interpreter en tant qu'unsigned int.
j'ai envie de faire quelque chose du type :
Merci d'avance pour votre aide.