此问题与此帖子相关: int to binary python
我有这个序列号我需要增加,现在它是固定的,工作正常。 但是,我刚刚发现序列号并不是简单的短序列号,考虑一下这个方案:
12 bits 4 bits
Sequence number Fragment number
所以如果我发送一个258(\x02\x01)的序列号,它实际上是
^{pr2}$我想知道怎样才能把258作为实际的序列号,而不是这样分开。
有没有什么简单的方法可以用struct
来实现这一点?在
更新:
我在上述问题中的意思是:
我正在构建一个网络数据包生成器,它是这样的:
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"),
###12 bits of this 'short' is Seq num, 4 bits left are if this is a fragment or not(if it is, its value will be =>1, and will then represent the frag number.)
])
后来,我打电话给班里的同学,把包裹发过来:
send(PacketHeader(Sequencenum=257))
send(PacketHeader(Sequencenum=258))
send(PacketHeader(Sequencenum=259))
我需要将序列号(在本例中假设为257)转换为一个短序列号,并处理表示16位短序列中片段号的4位。我希望始终将fragment number设置为0,但要使Sequencenum正确递增。在
提前谢谢!在
一系列的事情:
以及背面:
^{pr2}$相关问题 更多 >
编程相关推荐