working
This commit is contained in:
48
receive_images.py
Normal file
48
receive_images.py
Normal file
@ -0,0 +1,48 @@
|
||||
import socket
|
||||
import cv2
|
||||
import numpy as np
|
||||
import struct
|
||||
|
||||
HOST = "0.0.0.0" # nasłuchuj na wszystkich interfejsach
|
||||
PORT = 9999
|
||||
|
||||
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||
server_socket.bind((HOST, PORT))
|
||||
server_socket.listen(1)
|
||||
|
||||
print("Serwer nasłuchuje na port", PORT)
|
||||
conn, addr = server_socket.accept()
|
||||
print("Połączono z:", addr)
|
||||
|
||||
data = b""
|
||||
payload_size = struct.calcsize("Q") # 8 bajtów na długość ramki
|
||||
|
||||
while True:
|
||||
while len(data) < payload_size:
|
||||
packet = conn.recv(4096)
|
||||
if not packet:
|
||||
break
|
||||
data += packet
|
||||
if not data:
|
||||
break
|
||||
|
||||
packed_msg_size = data[:payload_size]
|
||||
data = data[payload_size:]
|
||||
msg_size = struct.unpack("Q", packed_msg_size)[0]
|
||||
|
||||
while len(data) < msg_size:
|
||||
data += conn.recv(4096)
|
||||
|
||||
frame_data = data[:msg_size]
|
||||
data = data[msg_size:]
|
||||
|
||||
frame = np.frombuffer(frame_data, dtype=np.uint8)
|
||||
frame = cv2.imdecode(frame, cv2.IMREAD_COLOR)
|
||||
|
||||
cv2.imshow("Odebrany obraz", frame)
|
||||
if cv2.waitKey(1) & 0xFF == ord('q'):
|
||||
break
|
||||
|
||||
conn.close()
|
||||
server_socket.close()
|
||||
cv2.destroyAllWindows()
|
||||
Reference in New Issue
Block a user