1

こんにちは、このようなソケット xml 経由で送信したいです。

<root>
  <image ID='2'>
    <![CDATA[ binary data with image ]]>
  </image>
</root>

画像はバイナリデータで、他の部分は文字列であるため、問題があります。複数の画像を送信していますが、ID が必要です。

主な問題は、バイナリ データと文字列データをどうするかです。イメージを str に変換しようとしましたが、これを元に戻すことはできません。

4

2 に答える 2

2

バイナリを埋め込む便利な方法xmlは、base64 エンコードです。XAMLこれは、たとえば小さな画像を送信するために使用するアプローチです。コードのどこかで次のようにすることができます。

import base64
img = open('some.png',rb').read()
base64.b64encode(img)

# append it to your buffer

そして反対側では:

#get the img portion in the buffer
import base64
img = base64.b64decode(fetched_img)
# write it to disk or whatever

これは、内のバイナリ ファイルを処理する標準/通常のXML方法です。

使用base64は非常に簡単です。これはインタープリターの例です。

In [1]: import base64
In [4]: base64.b64encode('example')
Out[4]: 'ZXhhbXBsZQ=='
In [5]: base64.b64decode('ZXhhbXBsZQ==')
Out[5]: 'example'

ここでドキュメントを読むことができます。

お役に立てれば!

于 2013-06-25T14:39:31.430 に答える
0

ソケットをバイナリとして接続するだけです-とにかくそうであり、おそらく改行変換については気にしません。

于 2013-06-25T14:40:12.333 に答える