-1

現在、jpg の長い文字列を文字列として取得するアプリケーションを使用しています。この文字列を個々のファイルに分割したいのですが、Python 内から EOF を認識する明確な方法が見つかりません。これはかなり一般的な問題だと思いますが、これに対する解決策を見つけることができませんでした。文字列の長さは 20 ~ 30 jpg 程度なのでかなり小さいのですが、文字列を調べているときに EOF を認識する方法がわかりません。

で分割してみました\0が、これはこれらの jpg の EOF を完全には示していないようです。

4

1 に答える 1

2

ファイルの送信を再構成して、ファイルを 1 つずつ受信するか、バイト ストリーム内の各ファイル間に明確な区切り文字を付けて受信するようにすることをお勧めします。

これが不可能な場合は、 APPO マーカーと IDを使用できる可能性があります。したがって、マーカーは または のいずれ0xFFE0[length]0x4A46585800かになります0xFFE0[length]0x4A46494600

最良の場合:

  1. 0xFFE0 が見つかるまでストリームを読み取ります。
  2. 2 バイト長 (最大 65535×65535 ピクセル) を読み取ります。
  3. 次の 5 バイトを読み取ってフォーマットを確認します - JFIF または JFXX で終了するヌルでない場合は中断します
  4. その長さを読み取り、ペイロードを処理します。
  5. 1 にループバックする

ただし、各ファイルを 1 つずつ処理する方がよいでしょう。

于 2013-06-25T23:08:40.727 に答える