Ошибка памяти в Pickle (при попытке отправить объект через сокет TCP) - PullRequest
0 голосов
/ 03 мая 2020

При попытке отправить видео через TCP-сокет, он работает в течение нескольких минут, но затем клиент выдает ошибку памяти. Похоже, что-то накапливается и заполняет оперативную память. Код следующий:

Клиент

import cv2
import socket
import pickle

HEADERSIZE = 10 # 10digit header
conn = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
conn.connect(('127.0.0.1',4000))
video = cv2.VideoCapture(0,cv2.CAP_DSHOW)

while True:
    check, frame = video.read()
    msg = pickle.dumps(frame)
    msg = bytes(f'{len(msg):<{HEADERSIZE}}', "utf-8") + msg
    conn.send(msg)


video.release()
cv2.destroyAllWindows
...