import socket import cv2 import pickle import struct ## new HOST='' PORT=8485 s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) print('Socket created') s.bind((HOST,PORT)) print('Socket bind complete') s.listen(10) print('Socket now listening') data = b"" payload_size = struct.calcsize(">L") print("payload_size: {}".format(payload_size)) switch = True while True: while switch: conn,addr = s.accept() switch = False try: while len(data) < payload_size: print("Recv: {}".format(len(data))) data += conn.recv(4096) print("Done Recv: {}".format(len(data))) packed_msg_size = data[:payload_size] data = data[payload_size:] msg_size = struct.unpack(">L", packed_msg_size)[0] print("msg_size: {}".format(msg_size)) while len(data) < msg_size: try: data += conn.recv(4096) except: pass frame_data = data[:msg_size] data = data[msg_size:] frame=pickle.loads(frame_data, fix_imports=True, encoding="bytes") frame = cv2.imdecode(frame, cv2.IMREAD_COLOR) cv2.imshow('ImageWindow',frame) ex_c = [27, ord("q"), ord("Q")] if cv2.waitKey(1) & 0xFF in ex_c: break except: switch=True