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

Python Discussion :

Besoin aide décoder des données réceptionnées d'une socket UDP


Sujet :

Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2023
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Besoin aide décoder des données réceptionnées d'une socket UDP
    Bonjour,
    j'ai besoin d'aide concernant un bout de code que je n'arrive ps à faire fonctionner

    Après avoir fait une requête UDP, je réceptionne un message sur un port et une adresse IP. Ce message fait 54 bytes, il est composé d'un premier paramètre (entier sur 4 bytes), d'un deuxième paramètre (double sur 8 bytes) et d'un dernier paramètre (entier sur 4 bytes), le reste est du padding. Je ne réussi à pas à récupérer le deuxième paramètre et l'exploiter/afficher comme un double. Ci-dessous mon bout de code qui ne fonctionne pas


    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
     
        sock_ecoute = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        sock_ecoute.bind(('127.0.0.1',16003))
     
          try:
     
            data, server = sock_ecoute.recvfrom(54) 
     
            data_hex = data.hex()
            print(f"Réponse reçue hex: '{data_hex}'")
     
            ValidityBitOffset = data_hex[0:8]
            TERRAIN_ELEV_FT = data_hex[8:24]
            TERRAIN_ELEV_VAL = data_hex[24:26]
            print(f"ValidityBitOffset: '{ValidityBitOffset}'")
            print(f"TERRAIN_ELEV_FT: '{TERRAIN_ELEV_FT}'")
            print(f"TERRAIN_ELEV_VAL: '{TERRAIN_ELEV_VAL}'")
     
            print(f"elevation: '{data[4:12]}'")
            float_value = struct.unpack('d',data[4:12])[0]
            print(f"elevation: '{float_value}'")

    Le code ci-dessus me retour

    Réponse reçue: 'b'\x03\x00\x00\x00\x81\xe26C\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00''
    taille reçue: '54'
    Réponse reçue hex: '0300000081e2364300000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000'
    ValidityBitOffset: '03000000'
    TERRAIN_ELEV_FT: '81e2364300000000'
    TERRAIN_ELEV_VAL: '01'
    elevation: 'b'\x81\xe26C\x00\x00\x00\x00''
    elevation: '5.57143205e-315'

    Quelqu'un à t-il une idée de comment je peux procéder?

    Merci pour votre aide

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 230
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 230
    Points : 1 796
    Points
    1 796
    Par défaut
    Pourquoi penses-tu que ça ne fonctionne pas ?
    Tu devrais avoir quelles valeurs selon toi?

Discussions similaires

  1. Réponses: 7
    Dernier message: 22/05/2020, 19h21
  2. Récupérer des donnés provenant d'une page web
    Par Vroom06 dans le forum Langage
    Réponses: 21
    Dernier message: 14/02/2011, 19h40
  3. recuparation des donnes mysql dans une liste
    Par Dina_light dans le forum JDBC
    Réponses: 1
    Dernier message: 16/02/2009, 15h23
  4. Réponses: 8
    Dernier message: 29/07/2008, 11h29
  5. Besoin de retrouner des 0 aussi dans une requête SQL avec JOIN
    Par Jean-Marc68 dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 05/11/2007, 14h45

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