2

Twisted を使用してソケットからデータを受信して​​います。私のプロトコル クラスは Protocol を継承しています。

Python 2.* にはバイト型がないため、受信データの型は str です。もちろん、len (データ) は文字列の長さを教えてくれますが、受信したバイト数を知るにはどうすればよいでしょうか? バイト数を知ることができるsizeofまたは同等のものはありませんか?または、プラットフォームが何であれ、バイト数は 2 * len (data) になると考えるべきですか?

前もって感謝します

4

2 に答える 2

4

文字列の長さはバイト単位の長さです。

于 2012-09-14T21:06:03.060 に答える
3

Python2 では、

  • str→ ASCII テキストとして使用されることもある一連のバイト
  • bytes→ のエイリアスstr(python 2.6 以降で利用可能)
  • unicode→ 一連の Unicode コード単位 (コンパイル時のオプションに応じて、UCS-2 または UCS-4、デフォルトでは UCS-2)

Python3 では、

  • str→ 一連の Unicode コード単位 (UCS-4)
  • bytes→ 一連のバイト
  • unicode→もうそんなことないよstr

に渡される型を と考えてdataReceivedくださいbytes。これはbytesPython 2.x で、bytesTwisted が Python 3.x に移植されたときになります。

したがって、受信したセグメントの長さ (バイト単位) は単純にlen(data).

于 2012-09-14T23:50:35.757 に答える