UDP_Serveur.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. # -*-coding:Latin-1 -*
  2. """Serveur de chat vocal"""
  3. import socket
  4. import time
  5. #initialisation des variables
  6. HOST = ''
  7. PORT = 6660
  8. serveur_lance = False
  9. connectes = []
  10. debug = False
  11. #creation d'une entree serveur UDP
  12. try:
  13. s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  14. s.bind((HOST, PORT))
  15. print("Le serveur udp ecoute a present sur le port {}".format(PORT))
  16. serveur_lance = True
  17. except 10048:
  18. print("une instance du serveur est deja en cours")
  19. except:
  20. print("echec de lancement du serveur")
  21. #boucle reception/emission
  22. while serveur_lance:
  23. try:
  24. #on recoit les donnees envoyees
  25. data, adresse = s.recvfrom(1024)
  26. if not adresse in connectes:
  27. connectes.append(adresse)
  28. print("Nouveau client connecte: {})".format(adresse))
  29. s.sendto("Vous êtes connecte :)" , adresse)
  30. else:
  31. try:
  32. for dest in connectes:
  33. #if dest != adresse:
  34. #print("{}\n".format(len(data)))
  35. s.sendto(data , dest)
  36. except RuntimeError:
  37. #pour gérer le changement de taille du dictionnaire 'connectes'
  38. #lors de l'arrivee ou du depart d'un client
  39. connectes = []
  40. print("Reinitialisation de la liste des connectes")
  41. except KeyboardInterrupt:
  42. serveur_lance = False
  43. #fermeture du serveur
  44. print("fermeture du serveur")
  45. s.close()