学 Python 中 有个问题困扰一天了 关于编码的 使用的 python3

2017-12-10 20:38:58 +08:00
 cnaol
我现在想达到一个效果
说具体点 我想把整数 12 转成字节 以 4 个字节保存
因为客户端 在收到字节流后 读取前 4 个字节保存为长度
我尝试了好几种转换 都是 ascii

使用的 py3
1627 次点击
所在节点    问与答
3 条回复
ysc3839
2017-12-10 20:49:02 +08:00
https://docs.python.org/3/library/struct.html

>>> import struct
>>> struct.pack('!i', 12)
b'\x00\x00\x00\x0c'

'!i' 的含义: '!' 代表网络字节序,因为你要跟客户端通信,所以得考虑字节序的问题;'i' 代表 int。在前面的链接里都有提到。
cnaol
2017-12-11 02:04:49 +08:00
@ysc3839
万分感谢
ysc3839
2017-12-11 12:38:53 +08:00
@cnaol 上面的代码转换成了网络字节序,客户端那里也要转换一次。使用 ntohl 这个函数来转换。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/413564

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX