Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 

59 строки
1.2 KiB

  1. import os
  2. import socket
  3. import time
  4. import random
  5. import threading
  6. import io
  7. from PIL import Image
  8. SERVER_URL = '0.0.0.0:1234'
  9. FRAME_COUNT = 5000
  10. BACKLOG = 100
  11. def routine_send_img(connection):
  12. img = Image.new(mode="RGBA", size=(10, 10))
  13. pix = img.load()
  14. for i in range(10):
  15. for j in range(10):
  16. r = random.randrange(0, 255)
  17. g = random.randrange(0, 255)
  18. b = random.randrange(0, 255)
  19. pix[i, j] = (r, g, b)
  20. output = io.BytesIO()
  21. img.save(output, format='PNG')
  22. connection.send(output.getvalue())
  23. connection.close()
  24. def main():
  25. ip, port = SERVER_URL.split(':')
  26. port = int(port)
  27. s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  28. s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
  29. s.bind((ip, port))
  30. s.listen(BACKLOG)
  31. print(f'Listening on port {port}...')
  32. threads = list()
  33. while True:
  34. connection, addr = s.accept()
  35. #print(f'connected from {addr}...')
  36. t = threading.Thread(target=routine_send_img, args=(connection, ))
  37. threads.append(t)
  38. t.start()
  39. print(f'Sending an image to {addr}...')
  40. for t in threads:
  41. t.join()
  42. s.close()
  43. if __name__ == '__main__':
  44. main()