25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.

AmirlanSharipov_server.py 1.2 KiB

11 ay önce
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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()