>> Technologie Électronique >  >> Téléphones >> Répondeurs

Envoi messages entre PC en réseau : Tutoriel Python Socket

Besoin d'envoyer un message d'un ordinateur à un autre sur le même réseau ? La bibliothèque socket de Python le rend simple. Voici un exemple complet et annoté.

Prérequis

  • Les deux PC sur même réseau local (LAN/Wi-Fi)
  • Python 3.x installé sur les deux machines
  • Pare-feu autorisant trafic sur port choisi (défaut : 1234)
  • Nom d'hôte ou IP locale du PC cible

Côté serveur (Récepteur) — Lancez en premier

import socket # Créer socket server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server.bind(('0.0.0.0', 1234)) # Écoute sur toutes interfaces server.listen(1) print("En attente de connexion...") conn, addr = server.accept() print(f"Connecté par {addr}") while True: data = conn.recv(1024).decode() if not data: break print(f"Reçu : {data}") response = input("Réponse : ") conn.send(response.encode()) conn.close() 

Côté client (Expéditeur)

import socket # Obtenir hostname/IP cible hostname = input("Entrez hostname ou IP cible : ") # Créer socket et connecter client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) client.connect((hostname, 1234)) # Envoyer message message = input("Entrez message : ") client.send(message.encode()) # Recevoir réponse response = client.recv(1024).decode() print(f"Réponse : {response}") client.close() 

Concepts clés expliqués

  • AF_INET : Adressage IPv4
  • SOCK_STREAM : TCP (fiable, ordonné)
  • bind() : Serveur revendique le port
  • listen()/accept() : Serveur attend connexions
  • connect() : Client initie connexion
  • send()/recv() : Communication bidirectionnelle

Considérations production

Pour vraies applications, ajoutez : gestion erreurs (try/except), timeouts, cadrage messages (préfixes longueur ou délimiteurs), chiffrement (SSL/TLS), authentification, threading pour connexions concurrentes.

Alternative : Bibliothèques haut niveau

Considérez asyncio, websockets, ZeroMQ, ou approches HTTP (Flask/FastAPI) pour applications réseau plus robustes.

Répondeurs