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 :
- long int getSsrcFromRtp( const char* RtpPacket )
- {
- return ntohl( *reinterpret_cast< const long int* >( RtpPacket + 8 ) );
- }
|
Message édité par theshockwave le 22-04-2011 à 17:20:26
---------------
last.fm