[Python] Socket
Introduction
En python, pour créer des applications en réseau il faut passer par des sockets qui est un objet de communication réseau qui permet d'échanger de l'information sur la couche IP.
Codage
Quelques explications
Le socket est composé :
- D'un protocole de communication (SOCK_STREAM pour TCP et SOCK_DGRAM pour UDP).
- D'une adresse IP source et destination.
- D'un port source et destination.
- D'un message à transporter.
Code serveur
import socket
SERVER_IP = '127.0.0.1'
SERVER_PORT = 1234
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind((SERVER_IP, SERVER_PORT))
server_socket.listen(5)
print("Serveur en attente de connexions...")
client_socket, client_address = server_socket.accept()
print(f"Connexion entrante de {client_address}")
try:
data = client_socket.recv(1024)
print("Message du client :", data.decode())
response = "Message reçu par le serveur!"
client_socket.sendall(response.encode())
except ConnectionResetError:
print("La connexion a été réinitialisée par le client.")
finally:
client_socket.close()
server_socket.close()
Code client
import socket
SERVER_IP = '127.0.0.1'
SERVER_PORT = 1234
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
client_socket.connect((SERVER_IP, SERVER_PORT))
print("Connecté au serveur.")
message = "Bonjour, serveur!"
client_socket.sendall(message.encode())
data = client_socket.recv(1024)
print("Message du serveur :", data.decode())
except ConnectionRefusedError:
print("La connexion a été refusée. Assurez-vous que le serveur est en cours d'exécution.")
finally:
client_socket.close()