struct.error: 'h' format requires -32768 number 32767
参考: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相关推荐
- header = struct.pack(!i, n) struct.error: 'i' format requires -2147483648 number 2147483647
环境:ubuntu python3.6 在多进程之间交换(传递)大量数据时报错. 报错: Traceback (most recent call last): File "/usr/li ...
- struct.error: ushort format requires 0 <= number <= 0xffff
这个问题是python struct 转bytes 的时候 下面的就会报错 import struct print(struct.pack("H",65536)) H 的取值范围是 ...
- python 网络编程 struct解包时报错 struct.error: unpack requires a buffer of 4 bytes
报错信息 D:\Donta_tensorflow-yolov3\python\python.exe D:/10_gitee/network_programming/避障程序信号及图像接收端/20100 ...
- 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:/ ...
- 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 最近拿 ...
- Matlab一个错误引发的血案:??? Error using == str2num Requires string or character array input....
Matlab总遇到一些神奇的问题,让人摸不着头脑.昨天编写程序的时候遇到一个让我十分火大的问题,也是自己的matlab基础不好吧. 先描述一下问题,再GUI界面有个listbox,Tag属性是'lis ...
- 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 ...
- 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"的解决方法 问题 ...
- 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 ...
最新文章
- 人脸检测对齐--Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks
- java 运行环境变量_java 环境变量配置与第一个程序运行
- HDU2650(高斯整数环)
- 开源数据库中间件-MyCa初探与分片实践
- 【Hook】postman工具的代码生成工具让它锦上添花
- oracle分页包,Oracle分页获取数据的实现 (包和存储过程)
- drive es 软件兼容_某知名软件被完美修改!对不住了!
- 部署windows服务
- java字节码文件加密_java 字节码加密源码
- 前端,后端,全栈哪个好找工作?
- 【爬虫剑谱】二卷7章 实战篇-搭建IP代理池绕过反爬检测
- java大文件下载失败_java文件下载超过4G文件错误
- 计算机基础及Python简介
- Extraneous children found when component already has explicitly named default slot. These children
- android 禁止第三方相机,谷歌突然宣布,Android 11推出新规,第三方相机软件猝不及防...
- Python编程PTA题解——换硬币
- 方倍工作室微信相关代码下载方法
- lisp 角平分线_证明冯奥贝尔定理的3种方法
- 应用在hiapk安卓市场分类排行榜中不显示的原因
- matlab最炫名族风,matlab版 “最炫民族风” --- 跟风之作(附音频效果)(转)
热门文章
- 系统架构领域的一些学习材料
- android 自定义event,Android运用onTouchEvent自定义滑动布局
- char* p = 123,字符串在内存中的哪个位置?
- apex图表使用饼图居中_ppt图表技巧:如何制作美观简洁的百分比饼图
- mysql 随机选择数据_从MySQL随机选取数据
- Sublime Text 4首个稳定版发布:全新UI、多选项卡、支持GPU渲染
- 如何写好注释,让同事赞不绝口?
- 重大BUG:你的淘宝双十一订单可能多付钱了!
- 计算机考古:发现世界上最古老的用户手册
- 最新最全国内外架构开源技术干货资料