我建立对等体在python对等应用程序。它去上班了UDP。我有功能称为getHeader(packetNo,totalPackets)返回我要在报头我斩波数据的大小packet.Depending头,附连到数据头并获得相同的数据包大小。

报头大小是不固定的,因为通过不同的没有消耗的位数长度不同例如我写报头包编号= 1作为PACKET_NO=1,其长度将成为包编号10,100,...等不同

我目前不包括没有在报头分组。我只是包括数据包数量,我想包括它,但我怎么能知道,没有之前计算头大小的数据包的报头现在应该包含没有数据包和NO_OF_PACKETS的= ---可以是任何长度的。

我可以通过一些功能,其将计算没有分组的,但将是这样的蛮力和将消耗不必要的时间和处理能力传递给它。有没有什么聪明的办法做到这一点?

有帮助吗?

解决方案

不要使用纯文本。使数据包的报头中的两个压缩4字节(或8个字节,这取决于你希望有多少包)的整数,e.g。

import struct
header = struct.pack('!II', packetNo, totalPackets)

这里的文档struct模块。

其他提示

为什么不零垫的包的数量,从而使头变得固定。说你要支持下列1个十亿包在一个信息:

PACKET_NO=0000000001

是相同的长度:

PACKET_NO=1000000000

当然,这将在数据包的可能的数目创建一个上限,但必须有一些上限值时,不

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top