IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau C Discussion :

extraire un champ dans un paquet RTP


Sujet :

Réseau C

  1. #1
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2007
    Messages
    630
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2007
    Messages : 630
    Par défaut extraire un champ dans un paquet RTP
    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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    unsigned char* ssrc = new unsigned char* ssrc[4]
    unsigned int ssrc = (unsigned int) ssrc;
    Merci d'avance pour votre aide.

  2. #2
    Membre émérite
    Avatar de D[r]eadLock
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    504
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 504
    Par défaut
    Citation Envoyé par ikuzar Voir le message
    Bonjour,
    Je code en C++
    Va voir dans le forum C++ alors

    Citation Envoyé par ikusar Voir le message
    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.
    Genre ça:
    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
    23
    24
    25
    #include <stdio.h>
    #include <arpa/inet.h>
     
    static unsigned int get_unsigned_int_at(const char *stream, size_t size,
    	int offset)
    {
    	if (offset + sizeof(unsigned int) > size) {
    		/* FIXME */
    		return -1;
    	}
    	return *((unsigned int*) &stream[offset]);
    }
     
    int main(void)
    {
    	unsigned int i;
    	const char stream[] = {
    		0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
    		0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
    	};
    	i = get_unsigned_int_at(stream, sizeof(stream), 13);
    	printf("i=%u (0x%08x), network order:%u (0x%08x)\n", i, i,
    		ntohl(i), ntohl(i));
    	return 0;
    }
    qui donne:
    Citation Envoyé par ./ikusar
    i=185207048 (0x0b0a0908), network order:134810123 (0x08090a0b)
    Citation Envoyé par ikusar Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    unsigned char* ssrc = new unsigned char* ssrc[4]
    unsigned int ssrc = (unsigned int) ssrc;
    C'est valide ça en C++ ?

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/07/2009, 12h01
  2. Extraire des champs dans un ordre précis
    Par karimDevelopper dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 02/06/2009, 14h19
  3. Extraire des champs dans une chaine de caractère
    Par clemuche dans le forum Requêtes
    Réponses: 1
    Dernier message: 25/02/2009, 23h24
  4. [XML] Extraire la valeur d'un champ dans un fichier XML
    Par dinozo13 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 06/10/2008, 12h53
  5. extraire 2 chiffres dans un champ
    Par nick774 dans le forum ASP
    Réponses: 4
    Dernier message: 31/10/2007, 20h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo