Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
 
 
 

59 rindas
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()