| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- # -*-coding:Latin-1 -*
- """Serveur de chat vocal"""
- import socket
- import time
- #initialisation des variables
- HOST = ''
- PORT = 6660
- serveur_lance = False
- connectes = []
- debug = False
- #creation d'une entree serveur UDP
- try:
- s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
- s.bind((HOST, PORT))
- print("Le serveur udp ecoute a present sur le port {}".format(PORT))
- serveur_lance = True
- except 10048:
- print("une instance du serveur est deja en cours")
- except:
- print("echec de lancement du serveur")
- #boucle reception/emission
- while serveur_lance:
- try:
- #on recoit les donnees envoyees
- data, adresse = s.recvfrom(1024)
- if not adresse in connectes:
- connectes.append(adresse)
- print("Nouveau client connecte: {})".format(adresse))
- s.sendto("Vous êtes connecte :)" , adresse)
- else:
- try:
- for dest in connectes:
- #if dest != adresse:
- #print("{}\n".format(len(data)))
- s.sendto(data , dest)
- except RuntimeError:
- #pour gérer le changement de taille du dictionnaire 'connectes'
- #lors de l'arrivee ou du depart d'un client
- connectes = []
- print("Reinitialisation de la liste des connectes")
- except KeyboardInterrupt:
- serveur_lance = False
- #fermeture du serveur
- print("fermeture du serveur")
- s.close()
|