可変ヘッダサイズを有する等しいサイズのパケットにデータを分割する方法..
質問
私はPythonでアプリケーションをピア・ツー・ピアを構築しています。 ITSはUDP上で仕事に行きます。私は私がヘッダにデータを添付し、同じパケットサイズを取得し、データをチョッピングしていますヘッダのサイズにそのpacket.Dependingのために私のヘッダを返すgetHeader(packetNo,totalPackets)
と呼ばれる機能を持っています。
ヘッダのサイズは固定されていません私はPACKET_NO=1
としてpacketNo = 1のヘッダを書いて、その長さは..等packetNo 10、100のために異なるであろう
私は現在、ヘッダー内のパケットの一切含まないわけではありません。私はちょうど私がそれを含めたいが、どのように私は、ヘッダとしてヘッダサイズを計算する前に、パケットの何が今= ---任意の長さにすることができ、パケットとNO_OF_PACKETSの一切が含まれている必要があり知ることはできないパケット番号、を含むています。
私は、パケットのノーを計算しますが、それは、ブルートフォースのようなものとなり、不必要な時間と処理能力を消費しますいくつかの機能を通してそれを渡すことができます。それを行うための任意のインテリジェントな方法はありますか?
解決
プレーンテキストを使用しないでください。例えば、整数2は、(あなたが期待するパケット数に応じて、または8バイト)の4バイトを詰めパケットのヘッダを作成します。
import struct
header = struct.pack('!II', packetNo, totalPackets)
他のヒント
なぜゼロパッド電話番号、ヘッダは固定となるように。あなたがメッセージの中に10億個のパケットをサポートしたいとします:
PACKET_NO=0000000001
と同じ長さである
PACKET_NO=1000000000
もちろん、これはありません、パケットの可能な数の上限を作成しますが、のいくつかのの上限が存在しなければならないのでしょうか?