#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-

import socket
import thread
import time

TAILLE_BLOC=32

listeClient=[]

def handler(sock):
    print "Handler"
    data='quelquechose'
    while data:
        data = sock.recv(TAILLE_BLOC)
        print "reçut : ",data
        if data:
            print "renvoie de : ",data
            for clisock in listeClient:
                clisock.send(data)
        else:
            listeClient.remove(sock)


if __name__=="__main__":
    import sys
    if len(sys.argv)<2:
        print "usage : %s <port>" % (sys.argv[0],)
        sys.exit(-1)
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.bind(('',int(sys.argv[1])))
    sock.listen(5)
    while 1:
        clisock, addr = sock.accept()
        listeClient.append(clisock)
        print 'connection entrante : %s:%d' % addr
        thread.start_new_thread(handler, (clisock,))
