#!/usr/bin/python3

import protocol
import easysocket
import easythread
import threading

sockets_vers_les_clients = []

le_lock = threading.RLock ()

# Le socket serveur, qui ne sert que à accepter des
# connexions.
ss = easysocket.make_server_socket (10000)

def retransmission (socket_vers_un_client):
    while True:
        nom_et_message = protocol.receive (socket_vers_un_client)
        print (nom_et_message)
        with le_lock:
            for s in sockets_vers_les_clients:
                if s != socket_vers_un_client:
                    try:
                        protocol.send (s, nom_et_message)
                    except:
                        pass

while True:
    sc, ac = ss.accept ()
    sockets_vers_les_clients = sockets_vers_les_clients + [sc]
    easythread.start (retransmission, sc)
