Python Kodlarda Hata

Katılım
10 Mayıs 2020
Mesajlar
127
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:

Yeni konular

Geri
Yukarı