import socket
import threading
# Adresse IP et port du serveur
host = ''
port = 8200
# Créer une socket TCP
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Lier la socket à l'adresse et au port spécifiés
server_socket.bind((host, port))
# Mettre la socket en mode écoute
server_socket.listen(5) # Peut gérer plusieurs connexions simultanées
print(f"Le serveur écoute sur {host}:{port}")
# Fonction pour gérer la communication avec chaque client
def handle_client(client_socket, client_address):
print(f"Connexion établie avec {client_address}")
try:
while True:
# Recevoir un message du client
client_message = client_socket.recv(1024).decode('utf-8')
if not client_message:
break
print(f"Message reçu de {client_address}: {client_message}")
# Répondre au client
server_message = input("Entrez votre message pour le client : ")
client_socket.sendall(server_message.encode('utf-8'))
except Exception as e:
print(f"Erreur lors de la communication avec {client_address}: {e}")
finally:
# Fermer la connexion avec le client
client_socket.close()
print(f"Connexion fermée avec {client_address}")
# Boucle pour accepter les connexions entrantes
while True:
client_socket, client_address = server_socket.accept()
# Démarrer un thread pour chaque client
client_thread = threading.Thread(target=handle_client, args=(client_socket, client_address))
client_thread.start()