我试图在python中设置一些发送编码流量的客户端和服务器代码。以下是使用base64
编码数据的echo服务器示例:
import base64,socket
s=socket.socket()
s.bind(("127.0.0.1",9090))
s.listen(5)
cls,addr=s.accept()
data=cls.recv(1024)
cls.send(base64.b64encode(data))
cls.close()
我遇到的问题是有时大流量会破坏编码和解码过程,错误显示填充不正确。我可以使用哪些其他编码方法,在发送大型TCP流量时不会中断。
答案 0 :(得分:0)
base64
通过将每3个字节编码为4个字节来工作。解码时,需要4个字节并将它们转换回3个字节。所以......
=
填充以填充4个字节。b64decode
的输入不是4个字节的倍数,您将得到
这个例外。最简单的解决方案是确保您发送的数据包始终是4个字节的倍数。