【发布时间】:2012-07-10 20:51:47
【问题描述】:
这个问题对你们大多数人来说可能很容易,但我至今找不到答案。
我正在构建一个网络数据包生成器,如下所示:
class PacketHeader(Packet):
fields = OrderedDict([
("head", "\x00"),
("headpad", "\x00"),
("headlen", "\x1a\x00" ),
("presentflag", "\x2e"),
("timestamp", "\x43\x10\x58\x16\xa1\x01\x00\x00"),
("flag", "\x03"),
("Sequencenum", "\x04\x00"),
])
稍后,我打电话给我的班级并像这样发送数据包:
send(PacketHeader(Sequencenum=257))
send(PacketHeader(Sequencenum=258))
send(PacketHeader(Sequencenum=259))
不幸的是,在网络上我有\x32\x35\x37(hex 中有 257 个)而不是这个:\x01\x01。
我想做的是能够:
send(PacketHeader(Sequencenum=257+1))
并让它在线上正确转换为 int
提前致谢!
【问题讨论】:
-
我可能被太多的信息弄糊涂了 :-) 你想把整数转换成十六进制吗?你能给出一个简单的输入和期望输出的例子吗?
-
@martineau:我的错,你应该读到:“\x01\x01”。会修改我的帖子。
标签: python networking binary int