我正在用python构建对等应用程序。它将在UDP上工作。我有一个名为getHeader(packetNo,totalPackets)
的函数,它返回该函数的头包。视情况而定在报头的大小上,我切碎数据,将数据附加到报头,得到相同的数据包大小。在
头大小不是固定的,因为不同位数使用的长度是不同的,例如,我将packetNo=1的头写为PACKET_NO=1
,它的长度对于packetNo 10,100,。。等等
我当前没有在头中包含任何数据包。我只是包含了数据包编号,我想包括它,但是在计算报头大小之前,我怎么知道数据包的数量呢?因为报头现在应该不包含任何数据包,而且没有任何数量的数据包=---可以是任意长度的。在
我可以通过一些函数传递它,这个函数不会计算数据包的数量,但这会像暴力一样,会消耗不必要的时间和处理能力。有什么明智的方法吗?在
不要使用纯文本。使包的头成为两个压缩的4字节(或8字节,取决于您期望的数据包数量)整数,例如
Here's documentation用于
struct
模块。在为什么不把你的包数归零,这样报头就变得固定了。假设您希望在一条消息中支持10亿个数据包:
长度与:
^{pr2}$当然,这将为可能的数据包数量创建一个上限,但是必须有一个的上限,不是吗?在
相关问题 更多 >
编程相关推荐