Bonsoir à toutes et à tous !

Alors voilà je me permet de venir sur ce forum afin de trouver de l'aide à mon petit soucis ^^

J'aimerais programmer un mini chat avec connexion TCP en langage Python

Je vous donne le code Serveur :

import socket
import select

hote = ''127.0.0.1"
port = 1234

connexion_principale = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
connexion_principale.bind((hote, port))
connexion_principale.listen(5)
print("Le serveur écoute à présent sur le port {}".format(port))

serveur_lance = True
clients_connectes = []
while serveur_lance:
# On va vérifier que de nouveaux clients ne demandent pas à se connecter
# Pour cela, on écoute la connexion_principale en lecture
# On attend maximum 50ms
connexions_demandees, wlist, xlist = select.select([connexion_principale],
[], [], 0.05)

for connexion in connexions_demandees:
connexion_avec_client, infos_connexion = connexion.accept()
# On ajoute le socket connecté à la liste des clients
clients_connectes.append(connexion_avec_client)

# Maintenant, on écoute la liste des clients connectés
# Les clients renvoyés par select sont ceux devant être lus (recv)
# On attend là encore 50ms maximum
# On enferme l'appel à select.select dans un bloc try
# En effet, si la liste de clients connectés est vide, une exception
# Peut être levée
clients_a_lire = []
try:
clients_a_lire, wlist, xlist = select.select(clients_connectes,
[], [], 0.05)
except select.error:
pass
else:
# On parcourt la liste des clients à lire
for client in clients_a_lire:
# Client est de type socket
msg_recu = client.recv(1024)
# Peut planter si le message contient des caractères spéciaux
msg_recu = msg_recu.decode()
print("Reçu {}".format(msg_recu))
client.send(b"5 / 5")
if msg_recu == "fin":
serveur_lance = False

print("Fermeture des connexions")
for client in clients_connectes:
client.close()

connexion_principale.close()



Et voilà le code client :

import socket

hote = "localhost"
port = 12800

connexion_avec_serveur = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
connexion_avec_serveur.connect((hote, port))
print("Connexion établie avec le serveur sur le port {}".format(port))

msg_a_envoyer = b""
while msg_a_envoyer != b"fin":
msg_a_envoyer = input("> ")
# Peut planter si vous tapez des caractères spéciaux
msg_a_envoyer = msg_a_envoyer.encode()
# On envoie le message
connexion_avec_serveur.send(msg_a_envoyer)
msg_recu = connexion_avec_serveur.recv(1024)
print(msg_recu.decode()) # Là encore, peut planter s'il y a des accents

print("Fermeture de la connexion")
connexion_avec_serveur.close()



Donc on arrive à se connecter au serveur avec plusieurs clients et le serveur reçois bien les messages des clients. Mais je souhaiterais pouvoir mtn faire en sorte que le serveur envois les messages reçus aux autres clients avec la fonction "select". Sauf que voilà je suis bloqué je sais pas quoi rajouter au code. Je sais qu'il manque pas grand chose mais bon ... Voilà,

Merci d'avance