Python Kodlarda Hata

alpersamur3

Hectopat
Katılım
10 Mayıs 2020
Mesajlar
156
Python:
import cv2
import numpy as np
import socket
import sys
import pickle
import struct ### new code
cap=cv2.VideoCapture(0)
clientsocket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
clientsocket.connect(('localhost',8089))
while True:
    ret,frame=cap.read()
    data = pickle.dumps(frame) ### new code
    clientsocket.sendall(struct.pack("H",len(data))+data) ### new code
Bunu bir de server kodları var gerekirse atabilirim. Bu program görüntü paylaşımı yapmayı amaçlıyor ama şöyle bir hata aldım ;
Python:
Traceback (most recent call last):
  File "C:\Users\HP\Desktop\client.py", line 13, in <module>
    clientsocket.sendall(struct.pack("H",len(data))+data) ### new code
struct.error: ushort format requires 0 <= number <= 0xffff
Bunu nasıl çözebilirim ?
Python:
import socket
import sys
import cv2
import pickle
import numpy as np
import struct ## new

HOST=''
PORT=8089

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')

conn,addr=s.accept()

### new
data = ""
payload_size = struct.calcsize("H")
while True:
    while len(data) < payload_size:
        data += conn.recv(4096)
    packed_msg_size = data[:payload_size]
    data = data[payload_size:]
    msg_size = struct.unpack("H", packed_msg_size)[0]
    while len(data) < msg_size:
        data += conn.recv(4096)
    frame_data = data[:msg_size]
    data = data[msg_size:]
    ###

    frame=pickle.loads(frame_data)
    print (frame)
    cv2.imshow('frame',frame)
server kodları
 
Son düzenleme:
Kullandığın kütüphanelere hakim değilim. Bu yüzden daha fazla yardımcı olamam ama pickle yerine database kullanmayı dene. Sqlite3 gibi.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…