/ / Wie viele Bytes werden mit dataReceived empfangen? - Python, verdreht

Wie viele Bytes werden mit dataReceived empfangen? - Python, verdreht

Ich verwende Twisted, um Daten von einem Socket zu empfangen. Meine Protokollklasse erbt vom Protokoll.

Da es in Python 2 keinen Byte-Typ gibt.*, der Typ der empfangenen Daten ist str. Len (data) gibt mir natürlich die Länge der Zeichenfolge an, aber woher weiß ich das? die Anzahl der empfangenen Bytes? Es gibt keine Größe oder etwas Äquivalent, das erlaubt mir die Anzahl der Bytes zu kennen? Oder sollte ich bedenken, dass die Anzahl der Bytes unabhängig von der Plattform 2 * len (Daten) sein wird?

Danke im Voraus

Antworten:

3 für die Antwort № 1

In Python 2

  • str → eine Folge von Bytes, die manchmal als ASCII-Text verwendet wird
  • bytes → ein Alias ​​für str (verfügbar in Python 2.6 und höher)
  • unicode → eine Folge von Unicode-Code-Einheiten (UCS-2 oder UCS-4, abhängig von den Optionen für die Kompilierzeit, standardmäßig UCS-2)

In Python 3,

  • str → eine Folge von Unicode-Code-Einheiten (UCS-4)
  • bytes → eine Folge von Bytes
  • unicode → so etwas nicht mehr, meinst du str

Denken Sie an den Typ, an den übergeben wird dataReceived wie bytes. Es ist bytes in Python 2.x wird es sein bytes wenn Twisted auf Python 3.x portiert wurde.

Daher ist die Länge des empfangenen Segments in Bytes einfach len(data).


4 für die Antwort № 2

Die Länge des Strings ist die Länge in Bytes.