# -*- coding: utf-8 -*-
import socket

PORT = 6000       # Numéro du port utilisé pour la communication
socket.setdefaulttimeout(1200.0)  # Fixe un temp maximum pour obtenir une réponse de la carte réseau
socketServeur = socket.socket(socket.AF_INET, socket.SOCK_STREAM)   # Création du socket
socketServeur.bind(('', PORT))    # Fixe le port d'écoute du socket serveur
print("Le serveur démarre et écoute sur le port {}".format(PORT))

finProgramme = False
while not finProgramme:
    e = socketServeur.listen(5)    # Arrête le programme jusqu'à recevoir une demande de connexion
    client, adresse = socketServeur.accept()  # Accepte la connexion et récupère les informations sur le client
    print("{} connecté".format( adresse ))

    msgClient = client.recv(4096)          # Récupère le message envoyé par le client
    client.send(b"Le serveur repond : " + msgClient)  # Répond au client en lui envoyant son texte
    msgClient = msgClient.decode('utf-8')  # Transforme le flux d'octet en chaîne pour l'afficher
    if msgClient != "":
        print(msgClient)
        if msgClient[-3:] == "FIN":        # Si on reçoit "FIN" comme derniers caractères,
            finProgramme = True            # on met fin au programme
    client.close()             # Ferme la connexion pour pouvoir en accepter d'autres

print("Fermeture du serveur")
socketServeur.close()
