calculator.py 895 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #!/usr/bin/env python
  2. import socket
  3. import sys
  4. server_addr = ("127.0.0.1", 8080)
  5. calc_addr = ("127.0.0.1", int(sys.argv[1]))
  6. recv_len = 1024
  7. calc_count = 3
  8. n = int(1e4)
  9. def func(x):
  10. return x
  11. def integral(a, b):
  12. dx = (b - a) / n
  13. x = a
  14. res = 0
  15. for i in range(n):
  16. res += dx * func(x)
  17. x += dx
  18. return res
  19. #Bind socket
  20. sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  21. sock.bind(calc_addr)
  22. print("Start calculator")
  23. while True:
  24. #Recv argc from Server
  25. a, server_addr = sock.recvfrom(recv_len)
  26. b, server_addr = sock.recvfrom(recv_len)
  27. a, b = float(a.decode()), float(b.decode())
  28. if a > b:
  29. a, b = b, a
  30. print(a, " | ", b)
  31. #Send result to Server
  32. while True:
  33. msg, server_addr = sock.recvfrom(recv_len)
  34. if msg.decode() == "READY":
  35. break
  36. sock.sendto(str(integral(a, b)).encode(), server_addr)