【发布时间】:2011-11-25 05:20:22
【问题描述】:
我需要使用原始二进制数据构建一个 tcp 框架,但我发现的所有关于字节的示例和教程都涉及从字符串转换,这不是我需要的。
简而言之,我只需要构建一个字节数组:
0xA2 0x01 0x02 0x03 0x04
请注意,我来自 C/C++ 世界。
我试过了:
frame = b""
frame += bytes( int('0xA2',16) )
frame += bytes( int('0x01',16) )
frame += bytes( int('0x02',16) )
frame += bytes( int('0x03',16) )
frame += bytes( int('0x04',16) )
然后,将这个帧变量扔给套接字的发送方法,但不能按预期工作,因为帧不包含我想要的...
我知道这是一个关于 Python 的非常基本的问题,所以如果你能指出我正确的方向......
【问题讨论】:
-
上述代码的问题是
bytes如果给定一个整数而不是一个列表,其行为会非常不同。你应该使用frame += bytes( [ int('0xa2',16) ] )。 -
我知道您希望(ed)动态地执行此操作,但完全不清楚的是:输入字节来自哪里?您从文本文件中读取十六进制表示法?你在源代码中写下每个字节?你有一个字节数组,你从标准输入读取二进制文件?
标签: python python-3.x bytearray