Bonjour,

J'ai fait un code qui à pour but d'envoyer une trame en hexadécimal en utilisant Ethernet entre client serveur: voici mon code:
Serveur:

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
26
27
28
29
30
31
32
33
34
35
36
import socket
import sys
import time
 
global msg_recu
 
def Demande_Trame():
    global msg_recu
    message_1='Demande de resultat de comptage'
    print(message_1)
 
    message_1=message_1.encode('UTF-8')
    connexion_avec_RPI.send(message_1)
    msg_recu=connexion_avec_RPI.recv(1024).decode('UTF-8')
    print('Réponse : ',msg_recu)
    print('Element 1 : ', msg_recu[0])
 
 
Demarrer=input('Cliquez sur 1 pour demarrer : ')
if Demarrer == '1':
    port = 10005
    host = 'localhost'
 
    while 1:
            time.sleep(5)
            connexion_principale=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            try:
                connexion_principale.bind((host,port))
            except socket.error:
                print("La liaison  a echouee !")
                sys.exit()
            print("SAE en attente...sur le port {}\n".format(port))
            connexion_principale.listen(5)
            connexion_avec_RPI,info_connexion=connexion_principale.accept()
 
            Demande_Trame()
Client:

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
import socket
import sys
 
def x():
    while 1:
        try:
            hote = 'localhost'
            port = 10005
            Connexion_SAE=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            Connexion_SAE.connect((hote,port))
            print("connexion avec l SAE sur le port {}\n".format(port))
 
            #---------------------------------------------------------------
 
            msg_recu=Connexion_SAE.recv(1024).decode('UTF-8')
            print(msg_recu)
 
            trame=str([0x7E, 0x02, 0x73])
 
            trame=trame.encode('UTF-8')
            Connexion_SAE.send(trame)
        except:
            print('Connexion ...')
 
x()
Vous pouvez voir que j'ai fais des boucles pour faire tout marcher en automatique, donc le serveur demande la trame le client reçoit son message et lui envoi celle-ci et le serveur la reçoit et puis l'affiche ! jusque la tout est bon, mais quand je veux utiliser les données de cette trame ! c-à-d quand je veux récupéré le 1er élément de la trame, il m'affiche le crochet "[" donc il comprend cette trame comme une chaîne de caractère !

je sais que c'est un problème de conversion, mais après plusieurs essais avec de nombreux exemple trouver sur internet, j'ai toujours la même chose ! ou bien des erreurs, donc j'ai préféré rester sur mon 1er code qui marche, et puis posé une question pour avoir de bonne proposition et ne pas me perdre.

Donc ma question est : comment envoyer une trame d'octets par Ethernet et l'affichée en tant que telle? des indications sur les conversions?

Voici l'affichage de l'exécution du serveur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
SAE en attente...sur le port 10005
 
Demande de resultat de comptage
Réponse :  [126, 2, 115]
Element 1 :  [  # Donc c'est ça le souci (moi je veux avoir le 126 et non le "["
Je vous remercie