1
0
forked from tanchou/Verilog
Files
Verilog_Louis/Semaine_7/ESP32/leds_commands/tests/pyhton/connectESPV2.py

54 lines
1.7 KiB
Python

import socket
import sys
import threading
import select
# Adresse du serveur
SERVER_IP = "192.168.1.105"
SERVER_PORT = 1234
def recv_loop(sock):
"""Écoute les données reçues du socket et les affiche en hexadécimal"""
while True:
try:
data = sock.recv(1024)
if not data:
print("Déconnecté du serveur")
break
print("Reçu :", ' '.join(f"{b:02X}" for b in data))
except Exception as e:
print("Erreur réception :", e)
break
def main():
# Connexion au serveur
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((SERVER_IP, SERVER_PORT))
print(f"Connecté à {SERVER_IP}:{SERVER_PORT}")
# Lancer la boucle de réception dans un thread séparé
threading.Thread(target=recv_loop, args=(sock,), daemon=True).start()
print("Tape des chiffres hexadécimaux (0-9, A-F). Ctrl+C pour quitter.")
try:
while True:
# Lire un seul caractère sans attente (mode ligne)
rlist, _, _ = select.select([sys.stdin], [], [], 0.1)
if rlist:
char = sys.stdin.readline().strip().upper()
if len(char) == 0:
continue
for c in char:
if c in "0123456789ABCDEF":
value = int(c, 16)
sock.send(bytes([value]))
print(f"Envoyé : {value:02X}")
else:
print(f"Ignoré : {c} (non hexadécimal)")
except KeyboardInterrupt:
print("\nDéconnexion")
sock.close()
if __name__ == "__main__":
main()