Guest User

Untitled

a guest
Oct 15th, 2018
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.89 KB | None | 0 0
  1.  
  2. hote = ''
  3. port = 12800
  4.  
  5. connexion_principale = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  6. connexion_principale.bind((hote, port))
  7. connexion_principale.listen(5)
  8. print("Le serveur écoute à présent sur le port {}".format(port))
  9.  
  10. serveur_lance = True
  11. clients_connectes = []
  12. while serveur_lance:
  13. # On va vérifier que de nouveaux clients ne demandent pas à se connecter
  14. # Pour cela, on écoute la connexion_principale en lecture
  15. # On attend maximum 50ms
  16. connexions_demandees, wlist, xlist = select.select([connexion_principale],
  17. [], [], 0.05)
  18.  
  19. for connexion in connexions_demandees:
  20. connexion_avec_client, infos_connexion = connexion.accept()
  21. # On ajoute le socket connecté à la liste des clients
  22. clients_connectes.append(connexion_avec_client)
  23.  
  24. # Maintenant, on écoute la liste des clients connectés
  25. # Les clients renvoyés par select sont ceux devant être lus (recv)
  26. # On attend là encore 50ms maximum
  27. # On enferme l'appel à select.select dans un bloc try
  28. # En effet, si la liste de clients connectés est vide, une exception
  29. # Peut être levée
  30. clients_a_lire = []
  31. try:
  32. clients_a_lire, wlist, xlist = select.select(clients_connectes,
  33. [], [], 0.05)
  34. except select.error:
  35. pass
  36. else:
  37. # On parcourt la liste des clients à lire
  38. for client in clients_a_lire:
  39. # Client est de type socket
  40. msg_recu = client.recv(1024)
  41. # Peut planter si le message contient des caractères spéciaux
  42. msg_recu = msg_recu.decode()
  43. print("Reçu {}".format(msg_recu))
  44. client.send(b"5 / 5")
  45. if msg_recu == "fin":
  46. serveur_lance = False
  47.  
  48. print("Fermeture des connexions")
  49. for client in clients_connectes:
  50. client.close()
  51.  
  52. connexion_principale.close()
Add Comment
Please, Sign In to add comment