我正在使用 Python 通过网络发送加密的音频。这个应用程序暂时运行然后中断说它必须是 16 的倍数。
不确定我做错了什么。或者在哪里查看代码来解决这个问题。
如果您能提供任何帮助,我将不胜感激
编辑 * 如果有人有兴趣看我做了一个谷歌代码项目,我相信我现在可以使用它了
最佳答案
msg = conn.recv(2024)
if msg:
cmd, msg = ord(msg[0]),msg[1:]
if cmd == CMD_MSG:
listb1.insert(END, decrypt_my_message(msg.strip()) + "\n")
上面的代码片段读取了 2024 字节的数据(不是 16 的倍数),然后(如果“if”语句为真)然后使用 msg.strip() 作为参数调用 decrypt_my_message。然后 decrypt_my_message 提示它被赋予了一个长度不是 16 的倍数的字符串。(我猜这就是问题所在。查看回溯以查看这是否是导致异常的行)。
您需要使用长度为 n*16 的字符串调用 decrypt_my_message。
您可能需要重新考虑读取流的逻辑 - 或者在中间有一些东西将对 decrypt_my_message 的调用缓冲到 n*16 block 中。
关于python - "Message Must be multiple of 16"使用 Python 通过网络加密音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7628548/