|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité de passage
![]() Inscription : mai 2008 Messages : 6 ![]() |
Bonjour à toutes et à tous.
Je suis relativement nouveau dans la programmation en python et je suis face à un problème (qui au fond ne doit pas être si compliqué) auquel je ne trouve pas de réponses sur le net. J'ai deux programmes très simples en python pour dialoguer sur le port ethernet. Voici les deux programmes ci-dessous (je suis sous Python 3.2, Windows XP 32 bits). Envoi de données: Code :
Réception des données: Code :
Je reçois bien des données de ce matériel mais ces dernières ne sont pas au bon format! Données reçues avec Wireshark (hexa): e7 9a 10 69 00 00 1e fa ff 0c 81 fe [...] Données reçues dans mon code: e7 9a $S 01 00 14 fa ff 87 80 fe { [...] Le problème vient, je pense, de l'encodage des données mais quels que soient les tests que j'ai pu effectuer, je ne retombe jamais sur la bonne trame! A quelle étape est-ce que je fais quelque chose de mal? Cette histoire d'encodage et décodage (encode/decode, binascii, str, etc...) m'a complètement perdu Merci pour votre aide |
||||
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() Inscription : juin 2008 Messages : 3 696 ![]() |
Ca affiche quoi lorsque vous affichez les bytes reçus en hexa.
On devrait avoir la même chose que ce qui passe sous wireshark, postez le nouveau code. - W
__________________
Architectures Post-Modernes |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : mai 2008 Messages : 6 ![]() |
Merci pour votre aide
Mon problème est justement de savoir comment avoir les données en hexa. Les données reçues (affichées dans le premier message) ressemblent à de l'hexa mais avec des caractères qui n'ont rien à voir avec de l'hexa ![]() Au niveau de la réception, j'ai essayé de changer la ligne : Code :
print ("Received message : ", str(data,'UTF-8')) Malheureusement le résultat est toujours différent de Wireshark. (Désolé je n'ai pas le matériel sous la main pour le moment, il m'est donc impossible de poster le résultat obtenu). |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Inscription : mars 2007 Messages : 851 ![]() |
Euh... Ton "matériel sur le réseau" envoie des données encodées en hexa ? Ce serait pas plutôt des chaînes binaires ?
Essaie ceci: Code :
print("Received message :", " ".join(hex(c) for c in data)) |
|
|
10
|
|
|
#5 |
|
Invité de passage
![]() Inscription : mai 2008 Messages : 6 ![]() |
Merci beaucoup dividee c'était bien cela. (c'était tellement simple
Désolé pour le temps de réponse, je n'ai pu tester le code avec le matériel en question que la semaine dernière. |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com