25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

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