参考:https://blog.csdn.net/weiwangchao_/article/details/80395941

struct.error: 'h' format requires -32768 <= number <= 32767

换成了"H",H长度是0-65536,发送图片暂时够用。

代码如下:

#发送websocket server报文部分
def sendMessage(self, message):
    msgLen = len(message)
    backMsgList = []
    backMsgList.append(struct.pack('B', 129+1))

if msgLen <= 125:
        backMsgList.append(struct.pack('b', msgLen))
    elif msgLen <=65535:
        backMsgList.append(struct.pack('b', 126))
        backMsgList.append(struct.pack('>H', msgLen))
    elif msgLen <= (2^64-1):
        backMsgList.append(struct.pack('b', 127))
        backMsgList.append(struct.pack('>h', msgLen))
    else :
        print("the message is too long to send in a time")
        return
    message_byte = bytes()
    print(type(backMsgList[0]))
    for c in backMsgList:
        # if type(c) != bytes:
        # print(bytes(c, encoding="utf8"))
        message_byte += c
    message_byte += bytes(message, encoding="utf8")
    #print("message_str : ", str(message_byte))
    # print("message_byte : ", bytes(message_str, encoding="utf8"))
    # print(message_str[0], message_str[4:])
    # self.connection.send(bytes("0x810x010x63", encoding="utf8"))
    self.connection.send(message_byte)

解决方法:

def send_img(msg):token = b'\x82'length = len(msg)if length <= 125:token += struct.pack('B', length)elif length <= 0xFFFF:token += struct.pack('!BH', 126, length)else:token += struct.pack('!BQ', 127, length)message_byte = token + msgglobal conn_dict_facefor connection in conn_dict_face.values():if message_byte != None:try:#if not connection._closed:timestr = datetime.datetime.now().strftime('%H:%M:%S:%f')connection.send(message_byte)except Exception as e:log_info('send error', e)connection.close()else:log_info("msg_test is none")

1. struct模块
struct.pack(fmt, value1, value2)
fmt为由特定字符组成的字符串,函数功能为,将python数据类型value1,value2转化为C数据类型

fmt字符类型:

Format  C Type          Python type     Standard size
x       pad byte        no value         
c       char            bytes of length 1 
b       signed char     integer         1   
B       unsigned char   integer         1   
?       _Bool           bool            1   
h       short           integer         2   
H       unsigned short  integer         2   
i       int             integer         4   
I       unsigned int    integer         4   
l       long            integer         4   
L       unsigned long   integer         4   
q       long long       integer         8   
Q       unsigned long long  integer     8   
n       ssize_t         integer             
N       size_t          integer             
e       (7)             float           2   
f       float           float           4   
d       double          float           8   
s       char[]          bytes            
p       char[]          bytes            
P       void *          integer         (6)

struct.unpack(fmt, buffer)

struct.error: 'h' format requires -32768 number 32767相关推荐

  1. header = struct.pack(!i, n) struct.error: 'i' format requires -2147483648 number 2147483647

    环境:ubuntu python3.6 在多进程之间交换(传递)大量数据时报错. 报错: Traceback (most recent call last):   File "/usr/li ...

  2. struct.error: ushort format requires 0 <= number <= 0xffff

    这个问题是python struct 转bytes 的时候 下面的就会报错 import struct print(struct.pack("H",65536)) H 的取值范围是 ...

  3. python 网络编程 struct解包时报错 struct.error: unpack requires a buffer of 4 bytes

    报错信息 D:\Donta_tensorflow-yolov3\python\python.exe D:/10_gitee/network_programming/避障程序信号及图像接收端/20100 ...

  4. 7.python wave.Error: unknown format: 65534 声音文件可以播放python读取不了

    # @File :sound_cut.py # @Author: Wang Zhimin # @Date : 2019/10/12 import wave r= wave.open("D:/ ...

  5. VS2010编译错误:fatal error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0x

    编译VTK,MFC时,mfc对版本的要求问题: 解决方法原文链接:http://www.cnblogs.com/madhenry/archive/2011/06/29/2093678.html 最近拿 ...

  6. Matlab一个错误引发的血案:??? Error using == str2num Requires string or character array input....

    Matlab总遇到一些神奇的问题,让人摸不着头脑.昨天编写程序的时候遇到一个让我十分火大的问题,也是自己的matlab基础不好吧. 先描述一下问题,再GUI界面有个listbox,Tag属性是'lis ...

  7. fatal error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0x0403. Valu

    1. 错误 fatal error C1189: #error :  This file requires _WIN32_WINNT to be #defined at least to 0x0403 ...

  8. mysql报错-ERROR 1206 (HY000)- The total number of locks exceeds the lock table size-的解决方法

    mysql报错"ERROR 1206 (HY000): The total number of locks exceeds the lock table size"的解决方法 问题 ...

  9. docker Cannot start container [8] System error: exec format error

    docker Cannot start container  [8] System error: exec format error 学习了:https://www.aliyun.com/jiaoch ...

最新文章

  1. 人脸检测对齐--Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks
  2. java 运行环境变量_java 环境变量配置与第一个程序运行
  3. HDU2650(高斯整数环)
  4. 开源数据库中间件-MyCa初探与分片实践
  5. 【Hook】postman工具的代码生成工具让它锦上添花
  6. oracle分页包,Oracle分页获取数据的实现 (包和存储过程)
  7. drive es 软件兼容_某知名软件被完美修改!对不住了!
  8. 部署windows服务
  9. java字节码文件加密_java 字节码加密源码
  10. 前端,后端,全栈哪个好找工作?
  11. 【爬虫剑谱】二卷7章 实战篇-搭建IP代理池绕过反爬检测
  12. java大文件下载失败_java文件下载超过4G文件错误
  13. 计算机基础及Python简介
  14. Extraneous children found when component already has explicitly named default slot. These children
  15. android 禁止第三方相机,谷歌突然宣布,Android 11推出新规,第三方相机软件猝不及防...
  16. Python编程PTA题解——换硬币
  17. 方倍工作室微信相关代码下载方法
  18. lisp 角平分线_证明冯奥贝尔定理的3种方法
  19. 应用在hiapk安卓市场分类排行榜中不显示的原因
  20. matlab最炫名族风,matlab版 “最炫民族风” --- 跟风之作(附音频效果)(转)

热门文章

  1. 系统架构领域的一些学习材料
  2. android 自定义event,Android运用onTouchEvent自定义滑动布局
  3. char* p = 123,字符串在内存中的哪个位置?
  4. apex图表使用饼图居中_ppt图表技巧:如何制作美观简洁的百分比饼图
  5. mysql 随机选择数据_从MySQL随机选取数据
  6. Sublime Text 4首个稳定版发布:全新UI、多选项卡、支持GPU渲染
  7. 如何写好注释,让同事赞不绝口?
  8. 重大BUG:你的淘宝双十一订单可能多付钱了!
  9. 计算机考古:发现世界上最古老的用户手册
  10. 最新最全国内外架构开源技术干货资料