【问题标题】:Compiler is showing me this error : struct.error: ushort format requires 0 <= number <= USHRT_MAX编译器向我显示此错误:struct.error: ushort format requires 0 <= number <= USHRT_MAX
【发布时间】:2017-07-13 17:45:33
【问题描述】:

客户端.py

import cv2
import numpy as np
import socket
import sys
import pickle
import struct 
cap=cv2.VideoCapture(0)
clientsocket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
clientsocket.connect(('localhost',5000))
while True:
    ret,frame=cap.read()
    data = pickle.dumps(frame) 
    clientsocket.sendall(struct.pack("H", len(data))+data)

错误在最后一行。

错误:struct.error: ushort 格式需要 0

【问题讨论】:

  • 有什么不明白的地方吗?显然,len(data) &gt; USHRT_MAX。一个快速的谷歌会告诉你USHRT_MAX == 65535
  • 谢谢,但我应该在哪里编辑才能让这段代码正常工作?
  • 让你的数据更短(降低相机分辨率),或者在struct.pack中编码一个更大的整数

标签: python sockets numpy video-streaming


【解决方案1】:

在客户端和服务器上用“L”修改“H”。应该工作

【讨论】:

  • 你能详细说明一下这个答案吗?
猜你喜欢
  • 2013-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-30
  • 2017-05-18
  • 2017-09-22
  • 2014-06-29
相关资源
最近更新 更多