/examples/udplatency.py

https://bitbucket.org/prologic/circuits/ · Python · 36 lines · 24 code · 11 blank · 1 comment · 2 complexity · e357eed159f2bb90000ae0fb5656f3c9 MD5 · raw file

  1. #!/usr/bin/env python
  2. from time import time
  3. from circuits.net.sockets import UDPClient, UDPServer, Write
  4. class LatencyServer(UDPServer):
  5. channel = "server"
  6. def read(self, address, data):
  7. self.fire(Write(address, data))
  8. class LatencyClient(UDPClient):
  9. channel = "client"
  10. count = 0
  11. data = []
  12. def ready(self, cmp):
  13. self.fire(Write(("127.0.0.1", 8000), str(time())))
  14. def read(self, address, data):
  15. latency = time() - float(data)
  16. self.data.append(latency)
  17. print "Round Trip: %0.2fs" % latency
  18. self.count += 1
  19. if self.count < 10:
  20. self.fire(Write(("127.0.0.1", 8000), str(time())))
  21. else:
  22. average = sum(self.data) / len(self.data)
  23. print "Average Latency: %0.2fs" % average
  24. raise SystemExit, 0
  25. (LatencyServer(8000) + LatencyClient(8001)).run()